首页 > 试题广场 >

获得月份天数

[编程题]获得月份天数
  • 热度指数:254 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。

输入描述:
多组输入,一行有两个证书,分别表示年份和月份,用空格分隔。


输出描述:
针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。
示例1

输入

2008 2

输出

29
链接:https://www.nowcoder.com/questionTerminal/7aefd50515d84dfebe7a6003ed8bbacc
来源:牛客网

#include <stdio.h>

int main() {
    int year=0;
	int month=0;
	while(scanf("%d %d",&year,&month)!=EOF)
	{
		int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
		if((((year%4==0)&&(year%100!=0))||(year%400==0))&&(month==2))
		{
				printf("%d\n",29);
		}
		else
			printf("%d\n",days[month-1]);
	}
    return 0;
}

发表于 2023-03-20 14:40:43 回复(0)
#include<stdio.h>
int is_leap_year(int year)
{
    return ((year%4==0&&year%100!=0||year%400==0));
}
int main()
{
    int m=0;
    int year=0;
    int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    while(scanf("%d %d",&year,&m)==2)
    {
        int ret=days[m];
        if(is_leap_year(year)&&m==2)
        {
            ret++;
        }
        printf("%d\n",ret);
    }
    return 0;
}
发表于 2023-02-03 08:43:28 回复(0)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    while ((scanf("%d %d", &a, &b)) != EOF)//a年份,b月份
    {
        if ((a % 4 == 0 && a % 100 != 0) || (a % 100 == 0))//判断闰年
        {
            if ((b == 1) || (b == 3) || (b == 5) || (b == 7) || (b == 8) || (b == 10) || (b == 12))
                printf("31\n");
            else if(b==2)
                printf("29\n");
            else
                printf("30\n");
        }
        else
        {
            if ((b == 1) || (b == 3) || (b == 5) || (b == 7) || (b == 8) || (b == 10) || (b == 12))
                printf("31\n");
            else if (b == 2)
                printf("28\n");
            else
                printf("30\n");
        }
    }
    return 0;
}
    

发表于 2022-08-05 17:34:05 回复(0)
#include <iostream>
#include <vector>
using namespace std;

int main(){
    int year, month;
    vector<int> nums{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    while(cin >> year >> month){
        if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)){
            if(month == 2){
                cout << 29 << endl;
            }
            else cout << nums[month] << endl;
        }
        else{
            cout << nums[month] << endl;
        }
    }
    return 0;
}

发表于 2022-08-03 21:47:42 回复(0)
#include
using namespace std;
int main() {
    int year,month;
    int m[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
    while(cin >> year >> month) {
        if((year%100 == 0 && year % 400 == 0) || (year % 100 != 0 && year % 4 == 0)) {
            if(month == 2) {
                printf("29\n");
            } else {
                printf("%d\n",m[month]);
            }
        } else {
            printf("%d\n",m[month]);
        }
    }
    return 0;
}
发表于 2019-11-09 16:24:42 回复(1)

问题信息

上传者:小小
难度:
5条回答 1048浏览

热门推荐

通过挑战的用户

获得月份天数