使用 c 获取用户输入的二维数组代码有什么问题

问题描述 投票:0回答:1
#include<stdio.h>
int main()
{
int i,j,m,n;
int a[m][n];
printf("enter the row of matrix:");
scanf("%d", &m);
printf("enter the coloum of matrix:");
scanf("%d",&n);
printf("enter the elements\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d", &a[i][j]);
}
}
printf("your matrix is :\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%d", a[i][j]);
}
}

}

`OUTPUT:输入矩阵的行:3 输入矩阵的颜色:3 输入元素 1个 2个 3个 4个 5个 6个 7 8个 8个 你的矩阵是: 788788788%

为什么我的输出只显示第 2 行和第 2 列的 3 个输入。`

arrays c matrix 2d static-analysis
1个回答
0
投票
int i,j,m,n;
int a[m][n];

m
n
在这里有不确定的值。您需要在收到并验证输入后声明数组。

注意

scanf()
返回它成功执行的转换次数,代码应该检查它。

if (scanf("%d", &a[i][j]) != 1) { 
     complain ();
}

参见初学者指南远离

scanf()

© www.soinside.com 2019 - 2024. All rights reserved.