正序和倒序兩種代碼哪個好?
#include <stdio.h>
int main()
{
??? /* 定義需要計算的日期 */
??? int year = 2008;
??? int month = 8;
??? int day = 8;
??? /*
???? * 請使用switch語句,if...else語句完成本題
???? * 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
???? * 小編還是希望大家獨立完成哦~
???? */
??? int sum;
??? switch (month)
??? {
??? 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;
??? }
??? if(year%4==0 && month>2)
??? sum=sum+1;
??? else
??? sum=sum;
??? printf("%d年%d月%d日是該年的第%d天",year,month,day,sum);
?return 0;
}
#include <stdio.h>
int main()
{
??? /* 定義需要計算的日期 */
??? int year = 2008;
??? int month = 8;
??? int day = 8;
??? /*
???? * 請使用switch語句,if...else語句完成本題
???? * 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
???? * 小編還是希望大家獨立完成哦~
???? */
??? int sum=0;
??? switch (month)
??? {
??? case 12:sum=sum+30;
??? case 11:sum=sum+31;
??? case 10:sum=sum+30;
??? case 9:sum=sum+31;
??? case 8:sum=sum+31;
??? case 7:sum=sum+30;
??? case 6:sum=sum+31;
??? case 5:sum=sum+30;
??? case 4:sum=sum+31;
??? case 3:if(year%4==0)
??? sum=sum+29;
??? else sum=sum+28;
??? case 2:sum=sum+31;
??? case 1:sum=sum+day;
??? }
??? printf("%d年%d月%d日是該年的第%d天",year,month,day,sum);
?return 0;
}
2021-01-18
個人以為第二種比較好,但是閏年是指年數可以整除四的年份,若為整百的年份,需整除四百。而且你的if-else語句少了{ }
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請使用switch語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
? ? ?* 小編還是希望大家獨立完成哦~
? ? ?*/
? ? int i,sum;
? ? sum=0;
? ? for(i=1;i<month;i++)
? ? {
? ? ? ? switch(i)
? ? ? ? {
? ? ? ? ? ? case 1:
? ? ? ? ? ? case 3:
? ? ? ? ? ? case 5:
? ? ? ? ? ? case 7:
? ? ? ? ? ? case 8:
? ? ? ? ? ? case 10:
? ? ? ? ? ? case 12:
? ? ? ? ? ? ? ? sum += 31;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? sum += 28;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 4:
? ? ? ? ? ? case 6:
? ? ? ? ? ? case 9:
? ? ? ? ? ? case 11:
? ? ? ? ? ? ? ? sum += 30;
? ? ? ? ? ? ? ? break;
? ? ? ? }
? ? }
? ? sum += day;
? ? if(((year%4 == 0 && year%100 != 0)||year%400 == 0)&&month>2)
? ? {
? ? ? ? sum +=1;
? ? }
? ? printf("%d年%d月%d日是該年的第%d天\n",year,month,day,sum);
? ? return 0;
}