Problem D: C語言習題5.13--查閏年

Problem D: C語言習題5.13--查閏年

Time Limit: 1 Sec  Memory Limit: 128 MB

 

Description

大家知道如何判斷某一年是否是閏年嗎?這個問題可難壞了小編,小編在寫一個查找m年到n年之間閏年的程序,卻苦於判斷閏年的函數不會寫,據說 今天你有上機課,我就拿着這個問題來找你了--

閏年的條件是:能被4整除但不能被100整除,或能被400整除。

#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;
}

主程序已給出,請自行編寫leap_year函數並提交

Input

第m年和第n年

Output

m年至n年之間的所有閏年,輸出結果每行8個,數據之間用空格分隔。

Sample Input

1949 2045

Sample Output

1952 1956 1960 1964 1968 1972 1976 19801984 1988 1992 1996 2000 2004 2008 20122016 2020 2024 2028 2032 2036 2040 2044

HINT

參考答案:

#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%4==0&&n%100!=0)||(n%400==0))
        return 1;
    else
        return 0;
}

編程軟件及視頻教程下載:點擊打開鏈接

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章