为什么2D Matrix不打印相同的输入值?

时间:2016-03-15 18:21:21

标签: c matrix

以下是我尝试的程序。

我得到2D数组并在扫描完所有元素后打印该数组 如下所示

int main(void) {
    puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
    int R, C;
    scanf("%d %d", &R, &C);
    int i[C][R];

    for (int row = 0; row < R; row++) {
        for (int column = 0; column < C; column++) {
            int val = 0;
            scanf("%d", &val);
            i[row][column] = val;
        }
    }

    for (int row = 0; row < R; row++) {
        for (int column = 0; column < C; column++) {
            printf("%d \t", i[row][column]);
        }
        printf("\n");
    }
    printf("RotatedMatrix\n");
    return EXIT_SUCCESS;
}

我将输入指定为3,4,表示3行4列,因此总共有12个元素

我为矩阵

提供1到12的输入

但输出矩阵如下所示

1   2   3   5   
5   6   7   9   
9   10  11  12

而不是

1   2   3   4   
5   6   7   8   
9   10  11  12

最后一列的元素改变如上

我无法弄清楚我错过了什么。如果我得到任何帮助会很有帮助

1 个答案:

答案 0 :(得分:2)

应该是

int i[R][C];

而不是

int i[C][R];