C二维数组输入

时间:2016-11-11 15:14:26

标签: c multidimensional-array

我输入数字对的代码,以奇怪的顺序输入数字,无法弄清楚什么是错的。我添加了aditional for循环来查看输入值.n是用户应该输入的对数。

    int main(){   int i,j,n,pairs[100][1];
printf("Select the number of pairs you want to enter(no more than 100):");
scanf("%d",&n);
printf("Enter the pairs:");
for(i=0; i<n; i++ ) {
for( j=0; j<2; j++ ) {
   scanf("%d", &pairs[i][j]);
}
}
for ( i = 0; i < n; i++ ) {
for ( j = 0; j < 2; j++ ) {
   printf("a[%d][%d] = %d\n", i,j, pairs[i][j] );
}
}
return 0;
}

让我说我选择2对的数量,然后我输入4space6enter 7space9enter,我的数组应该是这样的:

    pairs[0][0]=4
    pairs[0][1]=6
    pairs[1][0]=7
    pairs[1][1]=9

但现在我明白了:

    pairs[0][0]=4
    pairs[0][1]=7
    pairs[1][0]=7
    pairs[1][1]=9

2 个答案:

答案 0 :(得分:0)

int pairs[100][1];

“对”通常需要两个元素。尝试

int pairs[100][2];

答案 1 :(得分:-1)

如果您不想让2D数组出现问题,请使用中间变量:

int a;
for( i=0; i<n; i++ ) {
    for( j=0; j<2; j++ ) {
        scanf("%d", &a);
        a=poros[i][j];
    }
}