這代碼不嚴謹,求大佬指導改進意見!如果輸入13個月還會計算天數。按理說應該輸出只有十二個月。
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 13;
? ? int day = 8;
? ? int sum , flag;
? ? switch(month)
? ? {
? ? ? ? case 1:sum=0;break;
? ? ? ? case 2:sum=31;break;
? ? ? ? case 3:sum=59;break;
? ? ? ? case 4:sum=90;break;
? ? ? ? case 5:sum=120;break;
? ? ? ? case 6:sum=151;break;
? ? ? ? case 7:sum=181;break;
? ? ? ? case 8:sum=212;break;
? ? ? ? case 9:sum=243;break;
? ? ? ? case 10:sum=273;break;
? ? ? ? case 11:sum=304;break;
? ? ? ? case 12:sum=334;break;
? ? ? ? default:printf("一年當中只有12個月哦~");break;
? ? }
? ? sum=sum+day;
? ? if(year%400==0||(year%4==0 && year%100!=0))
? ? ? ? flag=1;
? ? else
? ? ? ? flag=0;
? ? if(flag==1&&month>2)
? ? ? ? sum++;
? ? printf("%d年%d月%d日是該年的第%d天",year,month,day,sum);
return 0;
}
2020-11-09
emmmmm,新手啊,不要噴。以下話語僅代表個人觀點,沒有嘲諷意思,出于練習自己的意思,看不慣希望繞道。可以在sum前面加個if語句判斷月份是否在12個月內,不是的話就直接跳過輸出年月日。