下为代码:
#include <stdio.h>
int main()
{
int start,end,i,n,number;
printf ("请输入起始年份及终止年份:");
scanf("%d %d",&start,&end);
i =start;
printf("其中是闰年的年份有:\n");
n=1;
number = 0;
while (i<=end)
{
if(i%400==0) printf("%d ",i),n++,number++;
if(i%4==0&&i%100!=0) printf("%d ",i),n++,number++;
i++;
if(n%6==0) printf("\n"),n=1; //注意这里 如果n从开始 0除以一个数还是0 就会有多余的换行问题
}
printf ("\n闰年的个数为:%d",number) ;
return 0;
}
刚开始我想尝试n=0并当n为5的倍数时换行,结果并不如人意:
程序多出了很多无意义的换行,原因在于0除以5的余数也为0,导致当未输出闰年时n保持零导致了自动换行,所以我将n每次重置为1,当自加到6时自动换行,解决了无意义换行的问题。
下为程序运行结果图: