求一个二维数组元素的周边之和:源程序如下:
#define N 3//宏定义N=3
#include <stdio.h>
void main()
{
int number[N][N] = { {1,2,3},{4,5,6},{7,8,9} };//定义二维数组并赋初值
int i, j;//定义循环变量
int sum = 0;//定义加和变量,并初始化赋值为0
for (i = 0; i < N; i++)//控制行变量遍历
for (j = 0; j < N; j++)//控制列变量遍历
if (i == 0 || i == (N-1) || j == 0 || j == (N-1))//判断是否为周边元素
sum += number[i][j];//进行求和运算
printf("%d", sum);//输出和
}
其中,上述程序中变量N,为数组的行列维数,可灵活进行修改。
程序运行结果如下:
扩展资料:
用行指针实现求一个二维数组四周元素的平均值。
#include <stdio.h>
#include <stdlib.h>
#define M 4
#define N 5
float fun(int(*p)[N], int m)
{
int i, j, k = 0;//定义循环变量
float sum, ave;//定义和变量、平均数变量
sum = 0;//初始化和变量为0
for (i = 0; i < m; i++)//控制行变量遍历
for (j = 0; j < N; j++)//控制列变量遍历
if(i == 0 || i == (m-1) || j == 0 || j == (N-1))//判断是否为周边元素
{
sum += p[i][j]; //进行求和运算
k++;
}
ave = sum / k;//求平均
return ave;//返回平均数
}
int main()
{
int a[M][N] = { {1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20} };
int i, j;
float ave;
for (i = 0; i < M; i++)//遍历打印出数组全部元素
{
for (j = 0; j < N; j++)
printf("%4d", a[i][j]);
printf("\n");
}
ave = fun(a,M);//函数计算并返回平均值
printf("average=%.2f\n", ave);//输出平均值
system("pause");//任意键继续
return 0;
}
扩展资料程序运行结果:
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},i,j,sum=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==0||i==2||j==0||j==2)
sum+=a[i][j];
printf("%d\t",a[i][j]);
printf("%d",sum);
}
int i, sum = 0;
for(i = 0; i < M; ++i)
{
sum += a[i][0];
sum += a[i][N-1];
}
for(i = 1; i < N -1; ++i)
{
sum += a[i][0];
sum += a[i][M-1];
}