编写函数fun:求出二维数组周边元素之和,作为函数值返回二维数组的值在主函数中赋予
3个回答
展开全部
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); } 看一下这个吧 手打 采纳
记得采纳啊
记得采纳啊
展开全部
以二维数组a[M][N]为例,
只写了子函数:
int fun(int *a)
{int sum=0,i,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
if((i==0)||(j==0)||(i==M-1)||(j==N-1))
sum+=a[i][j];
return sum;
}
只写了子函数:
int fun(int *a)
{int sum=0,i,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
if((i==0)||(j==0)||(i==M-1)||(j==N-1))
sum+=a[i][j];
return sum;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
typedef int DATATYPE;
DATATYPE fun(DATATYPE a[][],int m,int n)
{
int i;
DATATYPE sum=0;
for(int i=0;i<n;++i)
sum+=(a[0][i]+a[m-1][i]);
for(int i=1;i<m-1;++i)
sum+=(a[i][0]+a[i][n-1]);
return sum;
}
DATATYPE fun(DATATYPE a[][],int m,int n)
{
int i;
DATATYPE sum=0;
for(int i=0;i<n;++i)
sum+=(a[0][i]+a[m-1][i]);
for(int i=1;i<m-1;++i)
sum+=(a[i][0]+a[i][n-1]);
return sum;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询