【发布时间】:2016-07-01 08:35:24
【问题描述】:
下面是我试过的程序。
我得到二维数组并在扫描完所有元素后打印该数组 如下所示
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
最后一列的元素像上面一样改变
我无法弄清楚我错过了什么。如果我得到任何帮助会很有帮助
【问题讨论】:
-
scanf("%d %d %d",&R,&C); int i[C][R];-->scanf("%d %d", &R,&C); int i[R][C]; -
查看声明,以及如何使用
C和R。然后看看你在哪里使用数组,以及如何使用行和列。将声明与用法进行比较。 -
在询问有关运行时问题的问题时,发布干净编译的代码,包括#include 语句,否则我们只是猜测实际代码实际包含哪些头文件
-
当询问用户某些特定的输入时,总是提示用户,以便他们知道预期的内容。否则此代码输出“!!!Hello Worldl!!!”然后让用户盯着那个文本和一个闪烁的光标,并且没有指示他们接下来要做什么,
-
关于您问题中的此语句:“输入为 3,4” 对
scanf()的调用没有提供逗号,,因此不会输入这两个值。建议不要用空格分隔值。