C语言,这道题我很疑惑,望高手进来看看,帮忙解答下!

2025-06-21 15:05:56
推荐回答(3个)
回答1:

lz不用烦恼了,你原来的想法是正确的,
第一个问题:
"后面的for语句即:for(j=0;j<2;j++) for(i=0;i<3;i++)最后的输出结果不是三行两列吗"
 的确是三行两列,
把这里的i,j换一下位置就行了,
第二个问题:
如果你要完整的输出的话,就按如上方法改;
你现在改的那个方法,行,但不好看,只适合静态的初始化数据.

回答2:

void main()
{
int a[2][3],i,j;
printf("Enter data by line :\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("Output a 2-dimension array :\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++) {
printf("%4d\t",a[i][j]);
if(j==2)printf("\n");
}
getch();
}

回答3:

不要瞎改了,首先原程序没有错,我要提醒的是,你不要总是固化的认为i就是控制行的,j就是控制列的,i,j只不过是两个循环变量,谁控制行谁控制列都可以,这要看你的循环是怎么嵌套的;
再说说你改了以后的那个,你如果这样改的话,也能实现,但是输入与输出就不直观了,最后运行的时候就是,每输入一个数,就输出一个数,输入与输出间隔了,而这个二维数组是要完整的输入,然后再完整输出的;所以,二维数组的输入与输出都输要两个for循环分别控制的;