芯片原材料是沙子吗:怎么能够 实现 输出5个数后 换行啊?

来源:百度文库 编辑:神马品牌网 时间:2024/05/03 10:00:19
C语言问题!!

main()
{
int i,s;
s=0;
for(i=1600;i<=2000;i++)
{ if((i%4==0)&&(i%100!=0)||(i%400==0))
printf("%d",i);
s++;
if(s%5==0)
printf("\n"); }
}

这个不对 高手修改一下 啊 多谢了~

对你的内容没作任何改动,只是加了一对花括号 还有两个空格(看起来清楚点!)!

main()
{
int i,s;
s=0;
for(i=1600;i<=2000;i++)
{
if((i%4==0)&&(i%100!=0)||(i%400==0))
{ //加的,使下面的语句在IF之下
printf("%d ",i); //在百度知道里显示不出来%d后面加了两个空格
s++;
if(s%5==0)
printf("\n");
} //加的另一半
}
}

你的思维是正确的,就是没有花括号不能实现你预期的效果!

楼上虽然是输出 5个换行了,但中间空隙太大,即不该换行也换行,看起来不紧凑.下面我加了一个标记补充解决.呵呵,共同学习.
#include "stdio.h"
void main()
{
int i,s=0;
bool tick;
for(i=1600;i<=2000;i++)
{ if((i%4==0)&&(i%100!=0)||(i%400==0))
{printf("%d ",i);
s++; //把你这语句放到判断里面
tick=true;// 用于标记,以正确换行
}
if(tick && s%5==0)
{printf("\n"); tick=false;}//标记重新赋值
}
printf("\n");
}

main()
{
int i,s,t=0;
s=0;
for(i=1600;i<=2000;i++)
{ if((i%4==0)&&(i%100!=0)||(i%400==0))
printf("%d",i);
s++;
if(s%5==t)
printf("\n");
t++}
}

#include<stdio.h>
void main()
{
int i,s=0;
for(i=1600;i<=2000;i++)
{
if((i%4==0)&&(i%100!=0)||(i%400==0))
{
printf("%5d",i);
s++;
}
if(s%5==0) printf("\n");
}
}

楼上正解