小白算法有错误,知道是哪里错但是不知道为什么

#include<stdio.h>
#include<string.h>
int main()
{
int a,b,c,d,e[100][100],f,g,h,i;
float j[100],k=0;
scanf("%d%d",&a,&b);

for(c=0;c<a;c++)
{
printf(" %d ",b);
f=0;
for(d=0;d<b;d++)
{
scanf("%d",&e[c][d]);
f=f+e[c][d];

}
g=e[c][0];
h=e[c][0];
for(i=0;i<b;i++)
{
    if(g>e[c][i])

        g=e[c][i];

    if(h<e[c][i])
        h=e[c][i];
}
j[c]=f/float(b);
k=k+j[c]/c;



printf("第%d位学生的总分是%d平均分是%f最高分是%d,最低分时%d",c+1,f,j[c],h,g);
}


}

一个计算学生数量和各科成绩平均分和总平均分的程序,但是总平均分k有错误不知道为什么

代码修改如下,这个代码我运行了
#include

int main()
{
int a,b,c,d,e[100][100],f,g,h,i;
float j[100];
printf("请输入学生人数和科目数:");
scanf("%d%d",&a,&b);

for(c=0;c<a;c++)
{
    printf(" %d \n",b);
    f=0;
    for(d=0;d<b;d++)
    {
        printf("请输入学生%d科目成绩:",b);
        scanf("%d",&e[c][d]);
        f=f+e[c][d];
    }
    g=e[c][0];
    h=e[c][0];
    for(i=0;i<b;i++)
    {
        if(g>e[c][i])
            g=e[c][i];

        if(h<e[c][i])
            h=e[c][i];
    }
j[c]=(float)f/b;
//k=k+j[c]/c;
printf("第%d位学生的总分是%d平均分是%f最高分是%d,最低分时%d",c+1,f,j[c],h,g);
}
return 0;

}

#include

const int n = 10;

int main()
{
int i, sum = 0, ave, count = 0;
int a[n];

printf("请输入%d个正整数:\n", n);

for (i = 0; i < n; i++)
    scanf("%d", &a[i]);

for (i = 0; i < n; i++)
    sum += a[i];

ave = sum / n;

for (i = 0; i < n; i++)
{
    if (a[i] > ave)
        count++;
}
printf("大于平均分的人数是 %d\n", count);
printf("平均分是 %d\n", ave);

return 0;

}

可以用结构体来储存一下数据,你这个结构有点乱

大哥,结构太混乱了,能不能把标识符清晰一些。

题外话,代码没缩进很难看的

言归正传,这个代码有个很明显的错误

 k=k+j[c]/c;

当第一次循环的时候c为0,那么运算的时候,0怎么能够用来做分母呢?

不知道我又没有理解你的意思,我将代码改为

#include <stdio.h>
#include <string.h>

int main()
{
    int a,b,c,d,e[100][100],f,g,h,i;
    float j[100],k=0;
    scanf("%d%d",&a,&b);
    for(c=0;c<a;c++)
    {
        printf(" %d ",b);
        f=0;
        for(d=0;d<b;d++)
        {
            scanf("%d",&e[c][d]);
            f=f+e[c][d];
    }
        g=e[c][0];
        h=e[c][0];
        for(i=0;i<b;i++)
        {
            if(g>e[c][i])
                g=e[c][i];
                if(h<e[c][i])
                h=e[c][i];
    }   
        j[c]=f/(float)(b);
        k=k+f;
        printf("第%d位学生的总分是%d平均分是%f最高分是%d,最低分时%d\n",c+1,f,j[c],h,g);
    printf("总平均分%f\n", k/(c+1));
    }
    return 0;
} 

我也是渣渣,这缩减也没法看,怪CSDN???

这个结构很混乱,主要是如果是c个学生,b门课程的分数还是可以用二维数组的,但是如果只是c个学生的成绩一维数组就可以解决。总体感觉b是个多余的变量