為什么這么寫是錯(cuò)的?
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計(jì)算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請(qǐng)使用switch語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點(diǎn)擊左側(cè)任務(wù)中的“不會(huì)了怎么辦”
? ? ?* 小編還是希望大家獨(dú)立完成哦~
? ? ?*/
? ? switch(month)?
? ? {
? ? ? ? cese1:
? ? ? ? ? ? sum1=132;
? ? ? ? ? ? break;
? ? ? ? case2:
? ? ? ? ? ? if(year%4==0)
? ? ? ? ? ? ? ? sum2=29;
? ? ? ? ? ? else
? ? ? ? ? ? ? ? sum2=28;
? ? ? ? case3:
? ? ? ? ? ? sum3=60;
? ? ? ? ? ? break;
? ? }
? ? sum=sum1+sum2+sum3;
? ? printf("%d%d%d是該年的第%d天",year,month,day,sum);
return 0;
}
2016-12-20
1、case 和常量表達(dá)式之間要有空格,否則會(huì)被認(rèn)為是一個(gè)標(biāo)識(shí)符,而起不到case的作用;
2、變量sum1、2、3,均未定義就直接用,這是不允許的;
3、switch語句中,一旦遇到break就會(huì)跳出;而如果case后面沒有break,會(huì)一直往后執(zhí)行,一直到遇到break,這道題的目的是所有月份加和,希望的是最后跳出,所以中間的case不要加break,只有最后有一個(gè)break;
4、如果想輸出2008年8月8日是該年的第221天,?可以這樣輸printf("%d年%d月%d日是該年的第%d天",year,month,day,sum);如果按您的輸入?printf("%d%d%d是該年的第%d天",year,month,day,sum);會(huì)輸出結(jié)果200888是該年的第221天
2016-12-18
存和的變量沒有定義,應(yīng)該是int sum=0;
2016-12-11
嗯,switch值得是括號(hào)里的數(shù)為什么的時(shí)候就執(zhí)行case幾,比如switch(month) 中month是等于8的,執(zhí)行從case 8開始執(zhí)行,break時(shí)用于跳出switch