這代碼不嚴(yán)謹(jǐn),求大佬指導(dǎo)改進(jìn)意見!如果輸入13個(gè)月還會(huì)計(jì)算天數(shù)。按理說(shuō)應(yīng)該輸出只有十二個(gè)月。
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計(jì)算的日期 */
? ? 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("一年當(dāng)中只有12個(gè)月哦~");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,新手啊,不要噴。以下話語(yǔ)僅代表個(gè)人觀點(diǎn),沒有嘲諷意思,出于練習(xí)自己的意思,看不慣希望繞道??梢栽趕um前面加個(gè)if語(yǔ)句判斷月份是否在12個(gè)月內(nèi),不是的話就直接跳過輸出年月日。