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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值