這個我自己做的自定義版本,看看哪里需要修改的
#include <stdio.h>
int main()
{
? ? /* 定義需要計算的日期 */
? ? int year;
? ? int month;
? ? int day;
? ? /*
? ? ?* 請使用switch語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
? ? ?* 小編還是希望大家獨立完成哦~
? ? ?*/
? ? ?printf("定義需要計算的日期\n用空格隔開日期間距\n");
? ? ?printf(" ? ?年 ?月 ?日\n");
? ? ?scanf("%d",&year);
? ? ?scanf("%d",&month);
? ? ?scanf("%d",&day);
? ? ?int sum,falg;
? ? ?switch(month)
? ? ?{
? ? ? ? ?case 1:sum=0;break;
? ? ? ? ?case 2:sum=31;break;
? ? ? ? ?case 3:sum=60;break;
? ? ? ? ?case 4:sum=91;break;
? ? ? ? ?case 5:sum=121;break;
? ? ? ? ?case 6:sum=152;break;
? ? ? ? ?case 7:sum=182;break;
? ? ? ? ?case 8:sum=213;break;
? ? ? ? ?case 9:sum=244;break;
? ? ? ? ?case 10:sum=274;break;
? ? ? ? ?case 11:sum=305;break;
? ? ? ? ?case 12:sum=335;break;
? ? ? ? ?default:printf("一年只有十二個月喲~\n");
? ? ?}
? ? ?sum+=day;
? ? ? ? ?if(year%400==0||year%4==0 && year%100!=0)
? ? ? ? ?falg=0;
? ? ? ? ?else
? ? ? ? ?falg=1;
? ? ? ? ?if(falg=0 && month>=2)
? ? ? ? ?sum--;
? ? ?printf("%d年%d月%d日是該年的第%d天",year,month,day,sum);
return 0;
}
2017-02-03
順序就錯了
case12 ....到1
2017-01-30
sum--,這里吧,閏年計數的話,不減才對,就閏年3.1,是第61天,按照你地程序是自減了一天是第60天