本题目要求二维数组周边元素的平均值。
double avg(int a[][N]);
函数值返回周边元素的平均值。
#include <stdio.h> #define M 3 #define N 4 double avg(int a[][N]); int main() { int i,j,a[M][N]; double av; for(i=0;i<M;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); av=avg(a); printf("%f",av); return 0; } /* 请在这里填写答案 */
1 2 3 4 5 6 7 8 9 1 2 3
在这里给出相应的输出。例如:
3.800000
思路:这一题要求我们求二维数组周边元素的平均值,只要遍历周边元素求和取平均值就可以,比较简单,代码如下:
double avg(int a[][N]) { int i, j,k=0;//i j 为循环变量 k用来计算一共有几个数相加,便于计算平均值 double sum=0;//求和 double av;//取平均值 for (i = 0; i < M; i++)//外层循环控制行,内层循环控制列 { for (j = 0; j < N; j++) { if (i == 0 || j == 0 || i == (M-1) || j == (N-1))//只要是第一行或者最后一行。第一 //列以及最后一列的数都是周边数。 { k++; sum += a[i][j]; } } } av = sum/ k; return av; }