c语言求闰年 输入格式:
输入在一行中给出21世纪的某个截止年份。
输出格式:
逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出"Invalid year!"。若不存在任何闰年,则输出“None”。
#include<stdio.h>
int main()
{
int year, i, count = 0;
scanf("%d", &year);
if (year <= 2000 || year > 2100)
printf("Invalid year!\n");
else {
for (i=0; 2004 <= year; i++) {
if (year % 4 == 0 && year % 100 != 0 ||year % 400 == 0) {
printf("%d\n", i);
year--;
count++;
}
}
if (count == 0)
printf("None\n");
}
return 0;
}
输入2048 输出0
各种printf调试
输入2048
输出2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
你应该输出year啊,你输出i当然不对了。
另外这个循环写的都不对,修改如下:
#include<stdio.h>
int main()
{
int year, i, count = 0;
scanf("%d", &year);
if (year <= 2000 || year > 2100)
printf("Invalid year!\n");
else {
for (i=2004; i<= year; i++) {
if (i % 4 == 0 && i % 100 != 0 ||i % 400 == 0) {
printf("%d\n", i);
count++;
}
}
if (count == 0)
printf("None\n");
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!