有关C语言二维数组及指针,求大佬解惑。

如图示,本应该是输入一个二维数组,从左至右依次是序号,5科成绩,单人平均分,要求根据这个输入的内容求到整体单科平均分(列的第2到第5项),按列来遍历二维数组而不是按行(比如第1列第1个加上第2列第1个再除以2,就得到平均值),结果每次求到的总体平均分总在上一次的基础上加了3,求问题原因

第1个回答  2019-05-03
#include <stdio.h>
void average(int N, int *a[])
{
    int i, j, t = 0, aveg = 0, k = 0;
    for (j = 1; j < 6; j++)
    {
        aveg = 0;
        t = 0;
        for (i = 0; i < N; i++)
        {
            t += (*(a + i))[j];
            aveg = (float)t / N;
        }
        printf("%d ", aveg);
    }
}
int main()
{
    int b[2][6] = {{001, 1, 2, 3, 4, 5}, {002, 9, 8, 7, 6, 5}};
    int *as[2];
    for (int i = 0; i < 2; i++)
        as[i] = b[i];
    average(2, as);
    return 0;
}

追问

请问可不可以就是我动态变化输入多少行就计算多少行,而不用b数组约束它呢?

本回答被提问者和网友采纳
相似回答