那我就尽可能的详细咯~
#include
#define n 4
#define m 4 //宏定义 m=n=4
int fun(int a[n][m]) //声明函数 参数为一个二维数组
{
int sum=0,j,i; //sum为返回值 i,j为循环变量
for(i=0,j=0;j
for(i=0,j=0;i
for(i=n-1,j=0;j
for(i=0,j=m-1;i
sum-=a[0][0];sum-=a[0][m-1]; //这四个代码是用来减去上面sum-=a[n-1][m-1];sum-=a[n-1][0]; //计算的时候的4个重复值
return sum; //返回计算结果
}
int main() //测试主函数
{
int i,j,a[n][m]={0},k;
printf("请输入%d行,%d列元素:\n",n,m);
for(i=0;i
printf("请输入第%d行:\n ",i);
for(j=0;j
putchar('\0');
}
printf("周边元素之和:%d",fun(a));scanf("%d",&k);
}
PS:数组的排列例如a[3][2]:
a[0][0] a[0][1]
a[1][0] a[1][1]
a[2][0] a[2][1]
#include
#define n 4 //定义行值为4
#define m 4 //定义列值为4
int fun(int a[n][m])
{
int sum=0,j,i;
for(i=0,j=0;j
for(i=0,j=0;i
for(i=n-1,j=0;j
for(i=0,j=m-1;i
sum-=a[0][0];sum-=a[0][m-1]; /***由于四个边角的值重复加了一次***/
sum-=a[n-1][m-1];sum-=a[n-1][0]; /***所以需要再分别减去***/
return sum; //返回周边元素之和
}
int main()
{
int i,j,a[n][m]={0},k;
printf("请输入%d行,%d列元素:\n",n,m);
for(i=0;i
printf("请输入第%d行:\n ",i);
for(j=0;j
putchar('\0');
}
printf("周边元素之和:%d",fun(a));scanf("%d",&k);
}