「学点C语言系列」02 判断年份是否为闰年

写在前面:「学点C语言系列」是新开的专栏,博主电子信息工程专业毕业后,从事了4年硬件工程师,最近一次接触C语言还是4年前的毕设,想重新系统的学习一下C语言,从最基本的Hello World开始。
上一篇:
「学点C语言系列」01 求阿姆斯特朗数

文章目录
    • 1. 问题描述
    • 2. 解题思路
    • 3. 代码实现
    • 4. 延伸一下

1. 问题描述 判断一个年份是否是闰年?输入年份,输出判断结果:是或者否。
2. 解题思路 润年有两种,一种是普通润年,另一种是世纪闰年。
  • 普通闰年:年份能被4整除但不能被100整除,如2008为普通闰年。
  • 世纪闰年:能被400整除的为世纪闰年,如2000为世纪闰年。
可以将两个判断放在1个if语句中,成立则返回YESelse返回NO
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)

3. 代码实现
#define _CRT_SECURE_NO_WARNINGS 10 /* 文件名:rnpd.c 作者:记得诚 问题:闰年判断 */ #include int main() { int y; printf("请输人年份:"); scanf("%d", &y); //键盘输入赋值到y if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)//y被4整除且不能被100整除或者y被400整除 printf("YES"); else printf("NO"); printf("\n"); //换行 return 0; }

编译,键盘输入2012,返回YES,是闰年;
请输人年份:2012 YES 请按任意键继续. . .

编译,键盘输入2013,返回NO,不是闰年;
请输人年份:2013 NO 请按任意键继续. . .

4. 延伸一下 打印出1900~2000之间的全部闰年数?
#define _CRT_SECURE_NO_WARNINGS 10 /* 文件名:rndy.c 作者:记得诚 问题:闰年打印 */ #include int main() { int y; y = 1900; while (y <= 2000) { if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) { printf("%d(yes) ",y); y++; } else y++; } printf("\n"); //换行 return 0; }

编译,打印出1900~2000之间闰年的年份如下:
1904(yes) 1908(yes) 1912(yes) 1916(yes) 1920(yes) 1924(yes) 1928(yes) 1932(yes) 1936(yes) 1940(yes) 1944(yes) 1948(yes) 1952(yes) 1956(yes) 1960(yes) 1964(yes) 1968(yes) 1972(yes) 1976(yes) 1980(yes) 1984(yes) 1988(yes) 1992(yes) 1996(yes) 2000(yes) 请按任意键继续. . .

【「学点C语言系列」02 判断年份是否为闰年】永远相信美好的事情即将发生!作者记得诚,写于安徽合肥,时间2020-04-04 PM17:12

    推荐阅读