請問這段代碼都有些哪些錯誤
#include <stdio.h>
int main()
{
?/* 定義需要計算的日期 */
?int year = 2008;
?int month = 8;
?int day = 8;
?/*
? * 請使用switch語句,if...else語句完成本題
? * 如有想看小編思路的,可以點擊左側(cè)任務(wù)中的“不會了怎么辦”
? * 小編還是希望大家獨立完成哦~
? */
?int flag, sum;
?if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)flag = 1;
?else flag= 0;
?switch (month)
?{
?case 1:sum = day;
?case 2:sum += 31;
?case 3: sum += 28;
?case 4: sum += 31;
?case 5: sum += 30;
?case 6: sum += 31;
?case 7: sum += 30;
?case 8: sum += 31;
?}
?if (flag=1)sum += 1;
?printf("%d年%d月%d日是該年第%d天", year, month, day, sum);
?return 0;
}
2020-05-20
存在的問題一:sum沒有初始化。
問題二:switch用法思路不對;
你的寫法天數(shù)和只會加前一個月,想要達到題目要求的話,月份應(yīng)該從大到小寫:
?switch?(month)
?{
case?8:?sum?+=?31;
case?7:?sum?+=?30;
case?6:?sum?+=?31;
case?5:?sum?+=?30;
case?4:?sum?+=?31;
case?3:?sum?+=?28;
case?2:sum?+=?31;
case?1:sum?+=?day;
?}