#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年内没有闰年