CCF NOI1016 计算天数

来源:互联网 发布:搭建网站软件 编辑:程序博客网 时间:2024/06/06 03:31

问题链接: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;}




0 0