一名菜鸟妹纸的疑问
#include <stdio.h>
void main ()
{
char year;
printf("please input a year number!");
year=getchar();//或为scanf("%d",&year);
if(year<1000||year>=10000)
printf("please print a correct year!");
else
if((year%4==0&&year%100!=0)||(year%400==0))
printf("this year is a leap year!");
else
printf("This year is a common year!");
}
网上说当判断的变量是字符串的时候可以用getchar()从键盘读入,为什么上面的例子里,当测试用例为1000是不能判断为闰年呢,而是输出错误的信息哈~
[解决办法]
if((year%4==0&&year%100!=0)
[解决办法]
(year%400==0))
如果year除4的余0且除100的余不0 或 year除400的余0
1000被100除得且不被400除得
所以出This year is a common year!