53342321 2020-01-12 00:26 采纳率: 100%
浏览 327
已采纳

大神帮看一下我的这段代码如何更改才可改到正确答案

问题描述
有一本记录了从1年到9999年的日历,
假设1年1月1日为第一天,现在问第Y年的第M月的第D天是第几天。

输入
有一本记录了从1年到9999年的日历,
假设1年1月1日为第一天,现在问第Y年的第M月的第D天是 第几天。
输出
对于每组数据,输出这是第几天。
样例输入
2
1 1 1
2 2 2
样例输出
1
398
提示

来源
HJX

#include<stdio.h>
int main()
{
    int i,n,a,b,c,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d %d %d",&a,&b,&c);
        if(a!=1)
      {
            for(i=1;i<a;i++)
            {
     if(i%4==0&&i%100!=0||i%400==0)  sum+=366;
       else sum+=365;
       }
      }
        if(b!=1){
        for(i=1;i<b;i++)
        {
            if(i==1||i==3||i==5||i==7||
               i==8||i==10||i==12) sum+=31;
           else if(i==2)
           {
               if(a%4==0&&a%100!=0||a%400==0)sum+=29;
           else sum+=28;
           }
           else  sum+=30;
        }
        }
        sum+=c;
         printf("%d",sum);
   sum=0;
    }
    return 0;
}

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-01-12 13:18
    关注

    k这个变量没有看到有什么用
    if(i==2) sum+=28; 这里是否要判断闰年?

    你题目的地址给我,可以帮你测试下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?