写在前面:【学点C语言系列】是新开的专栏,博主电子信息工程专业毕业后,从事了4年硬件工程师,最近一次接触C语言还是4年前的毕设,想重新系统的学习一下C语言,从最基本的
Hello World
开始。
上一篇:
1. 问题描述
判断一个年份是否是闰年?输入年份,输出判断结果:是或者否。
2. 解题思路
润年有两种,一种是普通润年,另一种是世纪闰年。
- 普通闰年:年份能被4整除但不能被100整除,如2008为普通闰年。
- 世纪闰年:能被400整除的为世纪闰年,如2000为世纪闰年。
可以将两个判断放在1个if
语句中,成立则返回YES
;else
返回NO
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
3. 代码实现
#define _CRT_SECURE_NO_WARNINGS 10
/*
文件名:rnpd.c
作者:记得诚
问题:闰年判断
*/
#include <stdio.h>
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 <stdio.h>
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)
请按任意键继续. . .
永远相信美好的事情即将发生!作者记得诚,写于安徽合肥,时间2020-04-04 PM17:12