我有下面的代码。问题是我正在使用带有行和2列的二维数组。第一列用于存储值,第二列用作标志。当我初始化标志值时出现问题也受到了影响。
#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
int arr[a][1];
int i,j,k,sum=0;
for(i=0;i<a;i++)
{
scanf("%d",&arr[i][0]);
}
for(i=0;i<a;i++)
{
printf("%d\n",arr[i][0]);
}
for(j=0;j<a;j++)
{
arr[j][1]=0;
}
for(i=0;i<a;i++)
{
printf("%d\n",arr[i][0]);//Different Values
}
}
答案 0 :(得分:3)
int arr[a][1];
只有一列而不是两列。您应该使用
int arr[a][2];
答案 1 :(得分:2)
答案 2 :(得分:2)
你的数组应该是这样的:
arr[row][col] where row denotes the number of rows and col the no of coloumns.
因此arr [a] [1]是一行和一列的数组,因此你的代码工作错误。
你的数组应该是[a] [2]。这意味着arr是一个包含行和2个coloumn的数组。同样,你必须在整个代码中更改另一个arr [] []&#39。