注册 登录
编程论坛 C语言论坛

c语言 一个算天数问题

蔚然与成风 发布于 2020-07-24 19:35, 1600 次点击
题目:是输入某年某月 算出这一天是这一年的第几天
程序出现的问题 输入2020 3 1 时这个1没有加上导致少一天
#include "stdio.h"
void main()
{
    int year,month,c,Sday=0,day,i,Sum=0;
    printf("输入年月日: ");
    scanf("%d%d%d",&year,&month,&c);
    for(i=1;i<month;i++)
    {   
    switch(i)  //每月月份天数
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        day=31;break;
    case 4:
    case 6:
    case 9:
    case 11:
        day=30;break;
    case 2:             //判断闰年
    if(year%4==0)
    {
        if(year%100==0)
        {
            if(year%400==0)
                day=29;
            else day=28;
        }
        else day=28;
    }
    else day=28;}
        Sday=day+Sday;  //算出当前月份之前总的天数
    }
Sum=Sday+c;  //之前月份总天数加当前月份天数
printf("%d",Sum);
}
1 回复
#2
蔚然与成风2020-07-24 20:16
懂了  if(year%100==0)的else应该为day=29;
1