题目1
请编写函数fun,函数的功能是求出二维数组a周边元素之和,作为函数值返回。例如:若二维数组
如下:
1 3 5 7 9
2 9 9 9 4
6 9 9 9 8
1 3 5 7 0
则函数返回值为61。在主函数中赋予二维数组(大小为M*N, M、N由符号常量确定)值,调用fun函数进行计算,并输出计算结果。要求自行设计fun函数,在主函数中,输入、输出时,应显示适当提示信息
解题思路
- 从键盘读入数组的数据,放入二维数组中
- 编写fun函数,传入二维数组,计算周边元素的和,并返回结果。在计算和的时候,要注意元素不要重复计算。第一行和最后一行的每一列元素全加,其他行只加第一列和最后一列。
- 输出结果
源代码
#include <stdio.h>
#include <string.h>
#define ROW_COL 20
void inputArr(int arr[][ROW_COL], int row, int col);
int fun(int arr[][ROW_COL], int row, int col);
int main()
{
int arr[ROW_COL][ROW_COL];
int row, col, sum;
printf("请输入矩阵的行数: ");
scanf("%d", &row);
printf("请输入矩阵的列数: ");
scanf("%d", &col);
printf("请输入矩阵元素(用空格间隔): ");
inputArr(arr, row, col);
sum = fun(arr, row, col);
printf("周边元素之和为: %d\n", sum);
return 0;
}
void inputArr(int arr[][ROW_COL], int row, int col)
{
for(int i=0; i<row; i++)
{
for(int j=0; j<col; j++)
{
scanf("%d", &arr[i][j]);
}
}
}
int fun(int arr[][ROW_COL], int row, int col)
{
int sum = 0;
for