柒七七 发表于 2021-10-10 18:30:30

可以运行但杭电认定错误,求大佬解疑。杭电2005.

#include<stdio.h>

int main()
{   int i=0,w=0;
        int year,month,day;
        int x={31,28,31,30,31,30,31,31,30,31,30,31};
        int sum=0,j=0;
        while(scanf("%d/%d/%d",&year,&month,&day)!=EOF)
        {sum=0;
          if((year%400==0)||((year%4==0)&&(year%100!=0)))
        {
                i=1;
        }
          else
        {
                i=0;
        }
          for(j=0;j<month-1;j++)
        {
                sum+=x;
        }
          w=sum+day+i;
          printf("%d\n",w);
        }
        return 0;
}











qiuyouzhi 发表于 2021-10-10 19:05:04

?题呢

傻眼貓咪 发表于 2021-10-10 19:25:52

#include <stdio.h>

int main(){
    int days = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    while(1){
      int day, month, year, total = 0;
      if(scanf("%d/%d/%d", &year, &month, &day)){
            for(int i = 0; i < month-1; i++) total += days;
            if(!(year%4) && (!(year%400) || (year%100) != 0)) total += 1;
            total += day;
            printf("total days: %d\n", total);
      }
    }
    return 0;
}

柒七七 发表于 2021-10-10 23:42:46

qiuyouzhi 发表于 2021-10-10 19:05
?题呢

哦哦这个,想问问上面那个代码错的地方
给定一个日期,输出这个日期是该年的第几天。
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
对于每组输入数据,输出一行,表示该日期是该年的第几天。

Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
页: [1]
查看完整版本: 可以运行但杭电认定错误,求大佬解疑。杭电2005.