利用指针编写程序,统计整型二维数组a[N][M]中元素值为奇数的个数,以及数组a中各元素的平均值。

利用指针编写程序,统计整型二维数组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;
}