为什么编译器会跳过我的第二个scanf循环?

时间:2016-12-16 12:33:01

标签: c

这是一个添加矩阵的程序,但似乎编译器在第二个嵌套for循环中跳过第二个scanf。

void input_add_matrices() {
    printf("Input number of rows for matrices: "); scanf("%d", &nrow_matrix1); getchar();
    printf("Input number of columns for matrices: "); scanf("%d", &ncolumn_matrix1); getchar();
    printf("\nInput elements for matrix 1:\n");
    for(i=0; i<nrow_matrix1; i++){
        for(j=0; j<ncolumn_matrix1; j++){
            scanf("%d", &element_matrix1[i][j]); getchar();
        }
    }
    nrow_matrix2=nrow_matrix1;
    ncolumn_matrix2=ncolumn_matrix2;
    printf("\nInput elements for matrix 2:\n");
    for(i=0; i<nrow_matrix2; i++){
        for(j=0; j<ncolumn_matrix2; j++){
            scanf("%d", &element_matrix2[i][j]); getchar();
        }
    }
}

这是编译器错误还是其他什么?请帮忙。

输出是:

Input number of rows for matrices: 2
Input number of columns for matrices: 2

Input elements for matrix 1:
1
2
1
2

Input elements for matrix 2:

Matrix 2为空白。

1 个答案:

答案 0 :(得分:5)

我认为代码行ncolumn_matrix2=ncolumn_matrix2;导致ncolumn_matrix2为0,因此未输入循环