利用指针编写程序,统计整型二维数组a[N][M]中元素值为奇数的个数,以及数组a中各元素的平均值。假定N=3,M=4,从键盘读取数据保存在数组a中,调试并运行程序。
参考提示:由于二维数组按行优先顺序存储数组元素,定义“int p=&a[0][0];”构造单循环,循环次数为NM次,则在循环中使用*p++就能顺序引用每一个数组元素。
供参考:
#include <stdio.h>
#define N 3
#define M 4
void fun(int* a, int r, int c)
{
int i, cnt, s;
for (i = 0, s = 0, cnt = 0; i < r * c; i++)
{
if (a[i] % 2 == 1) cnt++;
s += a[i];
}
printf("avg=%d,cnt_odd=%d", s / (r * c), cnt);
}
int main()
{
int a[N][M], i, j;
for (i = 0; i < N; i++)
for (j = 0; j < M; j++)
scanf("%d", &a[i][j]);
fun(a[0], N, M);
return 0;
}