求某区间的闰年,并且在输出五个年份后换行

#include
#include

int main()
{
int n,m,a=0,i;
scanf("%d %d",&n,&m);
for(i=n;i<=m;i++)
{
if(i%4==0&&i%100!=0)
{
printf("%d ",i);
a++;
}else if(i%400==0){
printf("%d",i);
a++;
}
if(a%5==0){
printf("\n");
}
}

return 0;

}
闰年五个一换行,但是最后结果换行中间空了三行,结果是正确的的,但是格式不对

if(a%5==0),你这 如果第一次满足,后边不是每次都满足么,如果a为5了。打印换行,但不是闰年a不会++还是5,依然会换行呀,可以把换行放if里面

img

img

#include <stdio.h>
#include <stdlib.h>

int main()
{
int n,m,a=0,i;
scanf("%d %d",&n,&m);
for(i=n;i<=m;i++)
{
if(i%4==0&&i%100!=0)
{
printf("%d ",i);
a++;
if(a%5==0){
printf("\n");
}
}else if(i%400==0){
printf("%d",i);
a++;
if(a%5==0){
printf("\n");
}

}

}

return 0;
}


#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n, m, a = 0, i;
    scanf("%d %d", &n, &m);
    for (i = n; i <= m; i++)
    {
        if (i % 4 == 0 && i % 100 != 0)
        {
            printf("%d ", i);
            a++;
            if (a % 5 == 0)
            {
                printf("\n");
            }
        }
        else if (i % 400 == 0)
        {
            printf("%d", i);
            a++;
            if (a % 5 == 0)
            {
                printf("\n");
            }
        }
        
    }

    return 0;
}