我又回到那个C问题嘿。所以我试图让用户输入一个完整的2d数组(大小,值,一切),与VLA阵列(我使用最新的编译器)。一切都很好,直到我得到嵌套的for循环,然后它将最后一个值保存到数组中并忽略它之前的任何内容。我似乎无法弄清楚如何修复我的VLA迭代遍历数组中的每个元素并分配用户输入的值,我得到的是它将我的最后一个值保存到整个数组中。通过一些测试,我发现我的问题包含在我的嵌套for循环的内部循环中。编辑:通过Weather Vane的帮助,我们发现在我的x和y被保存之后需要初始化数组,但现在它将我的最后一个值保存在整个数组中而不是每个值都输入。这是我的代码片段:
int x, y, row, col, a = 0;
//int NxM[x][y]; Moved
bool counter[10]; //I have 1 last part to code that involves this
printf("This program counts occurrences of digits 0 through 9 in an NxM
array.\n");
printf("Enter the size of the array (Row Column): ");
scanf("%d %d", &x, &y);
int NxM[x][y]; //Moved here.
for(row = 0; row < x; row++){
printf("Enter row %d: \n", a);
a++;
for(col = 0; col < y; col++){
scanf("%d ", &NxM[x][y]);//Why you only save 1 value >.<
}
}
(我在循环之间使用printf语句的原因是测试循环问题的位置,因为我需要我的printf看起来像Enter row 0 Enter row 1
等。)