C语言 二维数组
求助 为什么i+j=3时换行,没想明白#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;
} 你都没有说这段程序的作用目的是什么。谁知道为什么是i+j==3的时候换行啊。
猜测可能是要把一个4×5的数组,以5×4的形式显示吧。 #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;
int count=0;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 5; j++)
{
printf("%2d ", a);
count++;
if(count%3==0)
printf("\n");
}
}
printf("\n");
return 0;
}
针对4*5——5*4数组转换的小技巧,和为3,下标从零开始,也就是四个元素一行,最后一个自动归入下一行与i增加一个抵消,下一行满足条件的时候行尾剩下两个元素自动归入第三行,同理以此类推;
满足条件是行尾剩下一个元素
页:
[1]