LAQ123laq 2021-10-29 19:06 采纳率: 25%
浏览 316

给定一个年份y和一个整数d,问这一年的第d天是几月几日?

标题
日期计算

类别
流程控制

时间限制
1S

内存限制
256Kb

问题描述
给定一个年份y和一个整数d,问这一年的第d天是几月几日?
注意闰年的2月有29天,且满足下面条件之一的是闰年:
1) 年份是4的整数倍,而且不是100的整数倍;
2) 年份是400的整数倍

输入说明
输入包含两个整数y和d,y表示年份,年份在1900到2018之间(包含1900和2018)。 d表示这一年的第几天,d在1至365之间。

输出说明
在一行输出两个整数,分别表示答案的月份和日期。

输入样例
2015 80

输出样例
3 21

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-09-27 19:03
    关注

    供参考:

    #include<stdio.h>
    int isLeap(int y)
    {
        return ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0));
    }
    int Getdaysofmonth(int y, int m)
    {
        int days[] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
        if (m == 2 && isLeap(y))  return days[m - 1] + 1;
        return days[m - 1];
    }
    int main()
    {
        int y, d, m;
        do {
            //printf("请输入年份 天数:");
            scanf("%d%d", &y, &d);
        } while (y < 1900 || y > 2018 || d < 1 || d > 365);
    
        for (m = 1; d > Getdaysofmonth(y, m) && m < 13; d -= Getdaysofmonth(y, m), m++);
        //printf("%d年%d月%d日\n", y, m, d);
        printf("%d %d", m, d);
    
        return 0;
    }
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月29日

悬赏问题

  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据