Copyright (c) 2016,
烟台大学计算机与控制学院 All ringts reserved.
文件名称:OJ总结<1>-查闰年
作 者:王兴振
完成日期:2016年11月14日
版 本 号:未知
题目描述: 大家知道如何判断某一年是否是闰年吗?这个问题可难坏了小编,小编在写一个
查找m年到n年之间闰年的程序,却苦于判断闰年的函数不会写,据说 今天你有上机课,我就
拿着这个问题来找你了-- 闰年的条件是:能被4整除但不能被100整除,或能被400整除。
#include int leap_year(int n); /*声明判断闰年函数*/
int main()
{
int i; int cnt; /*计数,用于每行满8个换行*/
int m,n; scanf("%d %d",&m,&n); /*输入年份*/
cnt=0; /*初始化*/
for(i=m;i<=n;i++) /*遍历m到n的每一年*/
{
if(leap_year(i)) /*判断i年是不是闰年*/
{
printf("%d",i); /*输出闰年*/
cnt++; /*计数+1*/
if(cnt==8) /*够8个换行,cnt清0*/
{
printf("\n");
cnt=0;
}
else
{
printf(" ");
}
}
} return 0;
}
主程序已给出,请自行编写leap_year函数并提交输 入: 第m年和第n年输 出: m年至n年
之间的所有闰年,输出结果每行8个,数据之间用空格分隔。
样例输入: 1949 2045
样例输出: 1952 1956 1960 1964 1968 1972 1976 1980
1984 1988 1992 1996 2000 2004 2008 2012
2016 2020 2024 2028 2032 2036 2040 2044
答 案:
#include <stdio.h>
int leap_year(int n); /*声明判断闰年函数*/
int main()
{
int i;
int cnt; /*计数,用于每行满8个换行*/
int m,n;
scanf("%d %d",&m,&n); /*输入年份*/
cnt=0; /*初始化*/
for(i=m; i<=n; i++) /*遍历m到n的每一年*/
{
if(leap_year(i)) /*判断i年是不是闰年*/
{
printf("%d",i); /*输出闰年*/
cnt++; /*计数+1*/
if(cnt==8) /*够8个换行,cnt清0*/
{
printf("\n");
cnt=0;
}
else
{
printf(" ");
}
}
}
return 0;
}
int leap_year(int n)
{
if (n%400==0 || (n%4==0 && n%100!=0))
return 1;
else
return 0;
}
总 结:
第一题简单,最坑的是只交一部分.......