不知道問題出在哪里,求大佬幫助
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請使用swtich語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
? ? ?* 小編還是希望大家獨立完成哦~
? ? ?*/
? ?int sum=0;
? ?switch(month)
? ?{
? ? ? ? case 12:sum+=30;
? ? ? ? case 11:sum+=31;
? ? ? ? case 10:sum+=30;
? ? ? ? case 9:sum+=31;
? ? ? ? case 8:sum+=31;
? ? ? ? case 7:sum+=30;
? ? ? ? case 6:sum+=31;
? ? ? ? case 5:sum+=30;
? ? ? ? case 4:sum+=31;
? ? ? ? case 3:sum+=29;
? ? ? ? case 2:sum+=30;
? ? ? ? case 1:sum+=day;break;
? ?}
? ??
? ? if((year%400==0)||(year%4==0&&year%100!=0))
? ? //如果為真那么是閏年,閏年中大于2月份都要加一天
? ? {
? ? ? ? sum+=day+1;
? ? }
? ? else
? ? {
? ? ? ? sum+=day; ??
? ? }
? ? printf("2008年8月8日是該年的第%d天",sum);
? ? return 0;
}
2018-07-04
我第一次也是犯了跟你一樣的錯誤,對于各種case其實是每個分支,上面分支的sum在遇到break后就不會再把它的值傳遞到下一個case中去了,所以必須自己算出每種case中num的值,具體可以參考小編的思路