这是学校题库里发现的,我感觉有点意思,所以就尝试了一下,结果做不出来(我是大一新生),想要请教一下有缘人,下面是题目:
闰年判断
题目内容:
从键盘任意输入一个公元年份(大于等于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"
有没有人可以帮我解答一下?
我在前面求闰年的程序中都没有什么问题,就是最后这个输入数据不合法这块不会搞,
试了好几种方法输出结果都会不可避免的带上Yes或No。
这是我最后一次尝试的代码:
#include<stdio.h>
#include<math.h>
int main()
{
char x;
x=getchar();
scanf("%d\n",&x);
x>0;
if((x%4==0&&x%100!=0)||(x%400==0))
{printf("yes\n",x);}
else
{printf("No\n",x);}
if((x<=0)||(x>='a'&&x<='z')||(x>='A'&&x<='Z'))
{printf("Input error!\n",x);}
return 0;
}
我怀疑可能是需要使用do while语句,但我对do while语句不怎么会,所以没有尝试。
希望有人可以帮我解答一下,指正一下我的错误,谢谢!