判断某一年是闰年还是平年

来源:互联网 发布:三维平面设计软件 编辑:程序博客网 时间:2024/04/29 05:59

一、首先我们应该知道怎样判断一年是否为闰年

条件:能被4整除且不能被100整除或者能被400整除的年份为闰年

二、代码

int main(){int year, leap;//定义两个整型变量year与leapprintf("请输入年份:");scanf_s("%d", &year);//输入一个年份if (year % 4 == 0)//如果这个年份能被4整除{if (year % 100 == 0)//如果这个年份能被100整除{if (year % 400 == 0)//如果这个年份能被400整除leap = 1;elseleap = 0;//这个数不能被400整除则将leap置为0}elseleap = 1;//这个数不能被100整除则将leap置为1}elseleap = 0;//这个数不能被这三个数中的任何一个数整除if (leap)printf("%d is a leap year\n", year);else printf("%d is not a leap year\n", year);return 0;}

三、过程中没有注意到的问题

1、由于我用的vs2013,在if嵌套的过程中不能确定到底else应该对于那个if

2、最后输出判断的时候,我写的是if(leap=1),运行的时候发现能正常运行,但是永远都是闰年,后来室友跟我说是因为那句话永远都是对的,应该改成if(leap)或者if(leap==1),感觉自己还是对赋值符号跟等于符号没有分清楚

3、vs2013要求输入必须为scanf_s形式,在vc6.0中直接scanf就可以了

四、反思

更简便的算法:if (year%4==0&&year%100!=0||year%400==0)  leap=1;   else   leap=0;

1 0