C语言二维数组的一个问题

2024-12-02 16:38:45
推荐回答(2个)
回答1:

#include 

int main(void)

{
    int cj[3][10],i,j,a,b,c;

    printf("请按班级顺序输入成绩,共30个: ");

    for(i=0;i<3;i++)
        for(j=0;j<10;j++)
            scanf("%d",&cj[i][j]);
    for(i=0;i<3;i++)
    {
        a = 0;
        b = 0;
        c = 0;
        for(j=0;j<10;j++)
        {
            if(cj[i][j] >= 80)
                a++;
            else 
                if(cj[i][j] < 80 && cj[i][j] >= 60)
                    b++;
                else 
                    if(cj[i][j] < 60)
                        c++;
        }
        printf("第%d个班级的情况:\nA等级的同学有%d人,B等级的同学有%d人,C等级的同学有%d人\n",i+1,a,b,c);
    }
    return 0;
}
这样可以得到正确结果.

回答2:

几个问题如下:

  1. a,b,c 没有初始化

  2. 第二次 for 循环,因为有几个 if 和 else if,需要用到花括号

  3. 最后出现 if(j=2) 再 print,没懂你的意思


你可以把这几个错误改过来再试试


猜测你的意思是由两个班级?没有体现出来哦,而且 j 变量前面用在循环里了