放生莲 2022-03-15 14:56 采纳率: 100%
浏览 407
已结题

计算某年某月某日是该年的第几天

请问各位这个应该怎么改??改了几遍都是答案错误,错的例子还越来越多,枯了

img

img

img

  • 写回答

2条回答 默认 最新

  • 关注

    你的day未初始化为0,可能造成错误
    这个一个没问题的代码

    #include<stdio.h>
    
    int main()
    {
            int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},year,month,day,sum=0,i;
             //数组下标和月份一一对应,内容为对应月份的天数
            scanf("%d/%d/%d",&year,&month,&day);
            if(year%400==0||year%4==0&&year%100!=0)
                a[0]=day,a[2]=29;
            else a[0]=day;      
       //将day存放到a[0]的位置,方便后续统计,如果是闰年,需要将2月份改为29天
            for(i=0;i<month;i++)
                sum+=a[i];
       //因为a[0]存放的是day,所以就可以直接从a[0]遍历相加
            printf("%d",sum);
        
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 3月15日