我正在编写一个C程序,要求用户输入两个变量,代表二维数组的大小,然后打印数组,我不知道问题出在哪里!
`#include <stdio.h>
int main(void) {
int n, x, i, j;
int arr[n][x];
printf("Enter no of columns:");
scanf("%d", &n);
printf("Enter no of rows:");
scanf( "%d", &x);
printf("Enter elements: \n");
for (i = 0; i < n; i++)
for (j = 0; j < x; j++)
scanf("%d", &arr[i][j]);
for (i = 0; i < n; i++){
for (j = 0; j < x; j++)
printf("%d \t", arr[i][j]);
printf("\n");
}
return 0;```
}``
2条答案
按热度按时间pjngdqdw1#
数组的此声明
具有未定义的行为,因为变量n和x未初始化。您需要在向变量输入值后声明数组。
同样在数组声明中,行应该在列之前。
那就是你至少要写
并且您需要检查输入的值是否为正值。
请注意,您应该在使用变量的最小作用域中声明变量。
jdzmm42g2#
在初始化了用于指定行和列的变量之后,需要声明可变长度数组
arr
*。我还建议对变量进行不同的命名,以免读者混淆。示例: