求解求解c语言基础题目求闰年

#include<stdio.h>

int main(void){
int year,i,flag;
scanf("%d",&year);

if(year>2000&&year<=2100){
    flag=1;
    for(i=2001;i<=year;i++){
        if((i%4==0&&i%100!=0)||i%400==0){
        printf("%d\n",i);
        flag=0;
        }
    }
    if(flag){
        printf("None");
    }
}
else{
    printf("Invalid year!");
}
    
return 0;

}

我想问问flag在这里面有什么用有什么意义啊?flag=1 flag=0 if(flag)都是为什么

一开始初始flag变量为1,然后对范围内的年份进行遍历
如果在范围中找到了闰年,则将flag设置为0
for循环结束后,如果flag仍为1,if(flag)中的条件就为真,代表在for循环内没有找到任何闰年,此时输出None
如果for循环结束后flag为0.代表在范围内找到了至少一个闰年,此时不进入if分支,也就不输出None
有帮助望采纳~

flag判断是否为合法的闰年,flag=0表示找到了闰年。

相当于一个标志,flag初始为0,如果有一个是闰年了就讲flag变为1,然后判断flag是不是为1,如果是1的话,那说明循环走完但是没有闰年,就打印none表示2000-2100年内没有闰年