CCF NOI1016 计算天数

问题链接CCF NOI1016 计算天数




时间限制: 1000 ms  空间限制: 262144 KB

题目描述

  输入年份与月份,求该月共有多少天。

输入

  输入两个空格隔开的正整数year和month,分别表示年份和月份。

输出

  输出对应year这一年month这个月的天数。

样例输入

2000 2

样例输出

29

数据范围限制

  1000<=year<=3000,1<=month<=12



问题分析

  计算某月有多少天,如果问的是2月则需要知道该年是否为润年。其他则都是常识。

程序说明

  程序中,把常年的每月天数放到数组中,便于计算。

  编写了一个判定润年返回天数的函数leapyear(),是必要的。

要点详解
  • 查表法是一种值得推荐的方法,简化了程序逻辑,优点多多。
  • 一种功能,通常将其封装到函数中,以便复用。



100分通过的C语言程序:

#include <stdio.h>

int days[]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

// 闰年计算函数
int leapyear(int year) {
    return ((year%4 == 0 && year%100 != 0) || year%400 == 0) ? 1 : 0;
}

int main(void)
{
    int year, month;

    scanf("%d%d", &year, &month);

    days[1] += leapyear(year);
    printf("%d\n", days[month - 1]);

    return 0;
}




posted on 2017-04-20 16:43  海岛Blog  阅读(443)  评论(0编辑  收藏  举报

导航