c语言二维数组的输入以及for循环的问题

img

img


各位大牛好,想问一下我这个程序的代码是否有问题以及数组的使用是否正确。为什么会导致输入一次成绩后结束了,第二个循环函数没有起作用。

第二个for语句最后的分号去掉

/**
 * @file score.c
 *
 * @brief   
 * @author  Zhang Jianfa
 * @copyright (C) 2021zhangjianfa. All rights reserved.
 * @date    2021-09-11
 */
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    int i,j;
    double score[4][3];
    for(i = 0; i < 4; i++)
    {
        for(j = 0; j < 3; j++)
        {
            printf("请输入第%d位同学的第%d门成绩:", i + 1, j + 1);
            scanf("%lf", &score[i][j]);
        }
    }
}

第二个for循环你多写了个分号

你好,你的代码主要是两个问题:
1.scanf参数".1%lf"里加位数限制是错误的写法,会导致输入为0。正确的写法应该是scanf("%lf", &score[x][y]);
2.for(y = 0; y < 3; y++)后多了一个";",应该删除此分号。

希望对你有用!

附上代码。加了调试信息,方便查看结果。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char * argv[]) {
    int x, y, z;
    double score[4][3];
    
    for(x = 0; x < 4; x++)
    {
        for(y = 0; y < 3; y++)
        {
            printf("请输入第%d同学的第%d门课成绩:\n", x + 1, y + 1);
            scanf("%lf", &score[x][y]); ///< scanf参数里加位数限制,会导致输入0
        }
    }
    
    ///< 打印信息
    printf("成绩打印:\r\n");
    for(x = 0; x < 4; x++)
    {
        for(y = 0; y < 3; y++)
        {
            printf("请输入第%d同学的第%d门课成绩:%lf\n", x + 1, y + 1, score[x][y]);
        }
    }
    
    return 0;
}