求个大佬告诉我哪里错了
1、你这个里面的else只对应第二个if,也就是说只有当第二个if 不成立时才会执行else和第一个if无关
2、题目中对a有限制要求。
修改方案一:你可以把第二个if换为if else,并别忘了加上a的范围
方案二:可以看看我的
#include <stdio.h>
int main() {
int year;
printf("输入:");
scanf("%d", &year);
if (year > 0 && year < 3000) {
if (year % 4 == 0) {
if (year % 100 == 0 && year % 400 != 0) {
printf("N");
}
else {
printf("Y");
}
}
else {
printf("N");
}
}
return 0;
}
供参考:
#include <stdio.h>
int main()
{
int y;
scanf("%d", &y);
if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
printf("Y");
else
printf("N");
return 0;
}
更简洁的写法:
#include <stdio.h>
int main()
{
int y;
scanf("%d", &y);
printf((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0) ? "Y" : "N");
return 0;
}