求出二维数组周边元素之和,作为函数值返回。二维数组的值在主函数中赋予。C语言

如题所述

int fun(int p[m][N],int m,int N)//m为行数,n为列数 { int sum = 0; for(int i=0;i<m;i++) sum += p[m][0]; for(int j=0;j<m;j++) sum += p[m][n-1]; for(int k=1;k<m-1;k++) sum += p[0][k]; for(int k=1;k<m-1;k++) sum += p[m-1][k]; return sum; } 这是大体想法 纯手打 请采纳 追问: 运算结果是多少? 回答: 第一个for()循环是计算矩阵的最上一行和最下一行的总和,第二个for()是计算除两头元素以外的最左一列和最右一列的元素的和,最后sum就是周边元素的和。 〔源程序〕 #include <conio.h> #include <stdio.h> #define M 4 #define N 5 int fun(int a[M][N]) {int sum=0,i; for(i=0;i<N;i++) sum+=a[0][i]+a[M-1][i]; for(i=1;i<M-1;i++); sum+=a[i][0]+a[i][N-1]; return sum ; } main() { int aa[M][N]={{1,3,5,7,9}, {2,9,9,9,4}, {6,9,9,9,8}, {1,3,5,7,0}}; int i,j,y; clrscr(); printf("The original data is :\\n"); for(i=0;i<M;i++) {for(j=0;j<N;j++) printf("%6d",aa[i][j]); printf("\\n"); } y=fun(aa); printf("\\nThe sum: %d\\n",y); printf(\\n); } 看一下这个吧 手打 采纳

记得采纳啊
温馨提示:答案为网友推荐,仅供参考