C语言编程题目

从键盘任意输入一个公元年份(大于等于1),判断它是否是闰年。若是闰年输出“Yes”,否则输出“No”。要求对输入数据进行合法性判断。
已知符合下列条件之一者是闰年:
(1)能被4整除,但不能被100整除;
(2)能被400整除。

运行结果示例1:
2015↙
No

运行结果示例2:
2016↙
Yes

运行结果示例3:
-123↙
Input error!

运行结果示例4:
a↙
Input error!

输入格式: "%d"
输出格式:
是闰年,输出:"Yes\n"
不是闰年,输出:"No\n"
输入数据不合法,输出:"Input error!\n"
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

#include <stdio.h>
#include <stdlib.h>
main()
{
int y=0;
scanf("%d",&y);
if(y>0){
if(y%400==0||y%100!=0&&y%4==0)
printf("Yes\n");
else
printf("No\n");
}
else
printf("Input error!\n");
system("pause");
}

如果输入了非法字符,scanf不会读取,y会保持原来的数值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-29
#include <stdio.h>

int main(void) 
{
int y;
if(scanf("%d",&y)==1)
{
if(y<1)
{
printf("Input error!\n");
}
else
{
if(y%400==0||y%100!=0&&y%4==0)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
}
else
{
printf("Input error!\n");
}

return 0;
}

本回答被提问者采纳