請問錯誤在哪里呢
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? int i,sun;
? ? if(year%400==0||(year%4==0&&year%100!=0))i=1;
? ? else i=0;
? ? /*
? ? ?* 請使用switch語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點擊左側(cè)任務(wù)中的“不會了怎么辦”
? ? ?* 小編還是希望大家獨立完成哦~
? ? ?*/
? ? switch(month)
? ? {
? ? case 1:sum+=0;break;
? ? case 2:sum+=31;break;
? ? case 3:sum+=59;break;
? ? case 4:sum+=80;break;
? ? case 5:sum+=110;break;
? ? case 6:sum+=141;break;
? ? case 7:sum+=171;break;
? ? case 8:sum+=202;break;
? ? case 9:sum+=233;break;
? ? case 10:sum+=263;break;
? ? case 11:sum+=294;break;
? ? case 12:sum+=324;break;
? ? }
? ? if(i==1&&month>2)
? ? sum++;
? ? printf("%d年%d月%d日是該年的第%d天",year,month,day,sum);
return 0;
}
2019-12-04
你的邏輯有問題,不應(yīng)該先判斷平年還是閏年的,還有就是switch語句里,sum+=的意思的,sum=sum+后面賦的值,這樣寫得話最好先給sum賦初值。還有個小建議,if,else循環(huán)最好用{這個}括起來
2019-12-04
#include <stdio.h>
int main()?
{?
? ?
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
??
? ? ?int sum,j;
? ? ?switch(month){
? ? ? ? ?case 1: sum=0 ; break;
? ? ? ? ?case 2: sum=31 ; break;
? ? ? ? ?case 3: sum=59; break;
? ? ? ? ?case 4: sum=90 ; break;
? ? ? ? ?case 5: sum=120; break;
? ? ? ? ?case 6: sum=151 ; break;
? ? ? ? ?case 7: sum=181 ; break;
? ? ? ? ?case 8: sum=212 ; break;
? ? ? ? ?case 9: sum=242 ; break;
? ? ? ? ?case 10: sum=273 ; break;
? ? ? ? ?case 11: sum=304 ; break;
? ? ? ? ?case 12: sum=334 ; break;
? ? ?}
? ? sum=sum+day;
? ? if(year%4==0 && year%100!=0 || year%400==0){
? ? ? ? j=1;
? ? }
? ? else{
? ? ? ? j=0;
? ? }
? ??
? ? if(j==1 && month>2){
? ? ? ? sum++;
? ? }
? ? printf("%d年%d月%d日這一天,是該年的第%d",year,month,day,sum);
return 0;
}