有沒有大佬跟我解釋一下這題
#include <stdio.h>
int main()
{
??? /* 定義需要計算的日期 */
??? int year = 2008;
??? int month = 8;
??? int day = 8;
??? /*
???? * 請使用swtich語句,if...else語句完成本題
???? * 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
???? * 小編還是希望大家獨立完成哦~
???? */
??? int date = 0;
??? switch (month)
??? {
??????? case 12:??? date += 30;
??????? case 11:??? date += 31;
??????? case 10:??? date += 30;
??????? case 9:??? date += 31;
??????? case 8:??? date += 31;
??????? case 7:??? date += 30;
??????? case 6:??? date += 31;
??????? case 5:??? date += 30;
??????? case 4:??? date += 31;
??????? case 3:??? if(year%400 != 0 && year%4 == 0){
??????????????????????? date += 29;
??????????????????? }else{
??????????????????????? date += 28;}
??????? case 2:??? date += 31;
??????? default:??? date += 8,printf("2008年8月8日是該年的第%d天",date);break;
??? }
?return 0;
}
2019-05-05
switch()括號里應該寫month-1,八月只過了八天,不能加上八月,執行順序是switch(7),接著執行 case 7語句,date開始累加,case里沒有break語句,所以會一直往下執行,if應該在case 2寫,把case 1寫上,累加了1~7月的天數,最后在default里加上day(即date += day; ),使用day可以提高代碼的復用性。最后貼上我自己的代碼:
你自己理解理解!
2019-03-05
你這沒錯啊