C语言数组元素输出

来源:百度知道 编辑:UC知道 时间:2024/05/19 00:06:13
#include<stdio.h>
void main()
{
int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{if(i%5==0)printf("\n");
printf("%12d",f[i]);
}
printf("\n");
}

{if(i%5==0)printf("\n");这一句中i%5==0我不理解,不是说元素下标是从0开始吗,那么第5,10,15,20个元素的下标分别不是4,9,14,19吗,所以输出换行符应该是i%5==4的时候啊,高手快来帮帮忙。。。
上述运行结果每行输出5个元素 当i%5==4时 第一行是4个元素,最后一行是1个,其它为5个

楼主你的理解没错,其实这个程序不过是在每行第一个元素输出之前换行,然后再输出这个数。所以整个矩阵的第一行之前是有换行的。

如果要在每行的最后一个元素输出后换行,就应该写成

for (i = 0; i < 20; i++) {
printf("%12d", f[i]); // 先输出当前的数
if (i % 5 == 4) printf("\n"); // 如果刚才输出的数是本行第5个,则换行
}

后面这种方案,换行应该在输出元素之后发生。

没错啊 每行五个 到第六次换行再输入啊