我這段程序?yàn)槭裁床恍邪?,大神幫忙看下,跪謝
int sum;
? ? switch(month) ? ?/*對(duì)月份進(jìn)行情況討論
? ? {
? ? ? ? case 1;sum = 0+day;break;
? ? ? ? case 2;sum = 31+day;break;
? ? ? ? case 3;sum = 31+28+day;break;
? ? ? ? case 4;sum = 31+28+31+day;break;
? ? ? ? case 5;sum = 31+28+31+30+day;break;
? ? ? ? case 6;sum = 31+28+31+30+31+day;break;
? ? ? ? case 7;sum = 31+28+31+30+31+30+day;break;
? ? ? ? case 8;sum = 31+28+31+30+31+30+31+day;break;
? ? ? ? case 9;sum = 31+28+31+30+31+30+31+31+day;break;
? ? ? ? case 10;sum = 31+28+31+30+31+30+31+31+30+day;break;
? ? ? ? case 11;sum = 31+28+31+30+31+30+31+31+30+31+day;break;
? ? ? ? case 12;sum = 31+28+31+30+31+30+31+31+30+31+30+day;break;
? ? ? ? default:printf("一年當(dāng)中只有12個(gè)月哦");break;
? ? }
? ? sum = sum+day;
? ? if(year%4 == 0)
? ? {
? ? ? ?if(month < 3)
? ? ? ? ?{
? ? ? ? ?printf("%d年%d月%d日是該年的第%d天",year,month,day,sum);
? ? ? ? ?}
? ? ? ?printf("%d年%d月%d日是該年的第%d天",year,month,day,sum+1);
? ? }
? ? else
? ? {
? ? printf(%d年%d月%d日是該年的第%d天",year,month,day,sum);
? ? }
2016-03-11
case? X:? 后面是冒號(hào)不是分號(hào)。
if(year%4 == 0)
? ? {
? ? ? ?if(month < 3)
? ? ? ? ?{
? ? ? ? ??? printf("%d年%d月%d日是該年的第%d天",year,month,day,sum);
? ? ? ? ?}
?????? else? ?? // 這兒掉了else 補(bǔ)上
???????? {
? ? ? ?????printf("%d年%d月%d日是該年的第%d天",year,month,day,sum+1);
???????? }
? ? }
? ? else
? ? {
? ? printf(%d年%d月%d日是該年的第%d天",year,month,day,sum);
? ? }
2016-03-11
首先,switch中已經(jīng)+day了,為啥還要sum=sum+day;
其次,閏年并不是單純的除以4來計(jì)算。
這是兩個(gè)主要問題,其他問題就是程序健壯性的問題了,比如day>31等。