二维数组课后习题求助
#include <stdio.h>int main()
{
int a = {
{1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20}};
int i, j;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 5; j++)
{
printf("%2d ", a);
if (i + j == 3)
{
printf("\n");
}
}
}
printf("\n");
return 0;
}
输出:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
if这个判断设立的初衷应该是想在这里用一个if来让a这个数组以五行四列的形式来输出。这里我有一个地发不懂的是:
a(注意这个a是要移动到下一行,所以当上面到>了a的时候就要换行。同理下面到了a,a)
a这个时候是满足if判断了键的所以换行了,但是到了后面1+3 !=3 2+3!=3这里是怎么做到换行的呢?
谢谢! 这个问题很简单啊,自己将数组下标写出来不就知道了嘛~~~
相当于把四行五列的数组以五行四列的形式输出。换行的时候下标就是a,a,a,a。而不是你所想象的每行的第三个换行。你再看看是不是这么个道理~~ sunrise085 发表于 2019-12-30 08:52
这个问题很简单啊,自己将数组下标写出来不就知道了嘛~~~
相当于把四行五列的数组以五行四列的形式输出。 ...
噢!我明白了,是我想糊涂了,我从五行四列去想这个事去了,应该从四行五列的角度出发去想,这样就符合 == 3了, 谢谢你
页:
[1]