我用swich语句做的一个判断闰年的小程序
下面的year%100!=0 这句是网友提示我加上的,我想知道为什么 年份与100取模 需要是不等于0的值啊,不等于不就代表着有余数了吗,不能被100整除了才是闰年吗?#include <stdio.h>
void main()
{
int year, leap,n=1;
printf("please input a year, eg.2000, I will help you ping or run\n");
while (n<=5)
{
scanf("%d", &year);
if (year%4==0 && year%100!=0 || year%400==0) //year%4==0 && year%400==0
{
leap=1; //leap变量没有重置,,,就是只要有一次是闰年,leap就永远是1,不管输什么都是闰年
}
else
{
leap=2;
}
switch (leap)//switch后面的表达式结果是一个boolean型,switch(boolean) 是不对的(year%4==0 && year%400==0)
{
case 1:printf("这是一个闰年!\n"); break;
case 2:printf("这是一个平年!\n"); break;
}
n++;
}
} 因为闰年是这样定义的:
1 能被4整除但是不能被100整除
2 能被400整除 顺带说声while循环有点多余
爱晴海 发表于 2018-1-18 17:20
顺带说声while循环有点多余
是有些多余,我就想每次能多试几个,{:10_254:} BngThea 发表于 2018-1-18 12:38
因为闰年是这样定义的:
1 能被4整除但是不能被100整除
2 能被400整除
谢谢亲
页:
[1]