亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

我算的結果不對,請問我哪里寫錯了?

#include <stdio.h>
int main()
{?
??? int year = 2008;
??? int month = 8;
??? int day = 8;
??? int i=1,j=0;//變量
???
??? for (i=1; i < month ; i++)
??? {
??????? switch(month)
??????? {
??????? case 1:
??????? case 3:
??????? case 5:
??????? case 7:
??????? case 8:
??????? case 10:
??????? case 12:
??????????? j+=31;
??????????? break;
??????? case 4:
??????? case 9:
??????? case 11:
??????????? j+=30;
??????????? break;
??????? case 2:
??????????? if ( year % 4 ==0)
??????????? {
??????????????? j+=29;
??????????????? break;
??????????? }
??????????? else
??????????? {
??????????????? j+=28;
??????????????? break;
??????????? }
??????? }
??????????
??? }
???? j+=day;
??????????? printf("%d年%d月%d天是該年的第%d天。", year,month,day,j);
?
?return 0;
}


我算的答案是225天,我不知道哪里錯了。

感謝幫助!

正在回答

3 回答

邏輯有錯誤,你這樣寫比如case 2=29+8,正確的應該是31+8,其他的case計算有的有錯有的沒錯我沒認真去研究它是怎么計算的,但是整體計算邏輯上肯定錯了,計算天數應該是本月之前的月份天數加上本月日期,而不是當月的天數加上日期,你再思考下。

0 回復 有任何疑惑可以回復我~
#1

LTrewin

你還漏了6月
2018-07-31 回復 有任何疑惑可以回復我~
#2

慕九州8237304 提問者

懂了!謝謝你!?
2018-07-31 回復 有任何疑惑可以回復我~

你的 i<month;i++;此時month為8,而switch內的是month,從而導致你的case 8循環了七次,若改為switch( i ) 再加上case 6 的話也是正確的。

1 回復 有任何疑惑可以回復我~
#1

Fosenc

自我見解
2018-08-02 回復 有任何疑惑可以回復我~
#2

Fosenc

你的思維是對的
2018-08-02 回復 有任何疑惑可以回復我~
#include?<stdio.h>
int?main()?
{?
????/*?定義需要計算的日期?*/
????int?year?=?2008;
????int?month?=?8;
????int?day?=?8;
????/*
?????*?請使用switch語句,if...else語句完成本題
?????*?如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
?????*?小編還是希望大家獨立完成哦~
?????*/
?????month--;
?????int?sum=0;
?????switch(month)
?????{
?????????case?11:?sum+=30;
?????????month--;
?????????case?10:?sum+=31;
?????????month--;
?????????case?9:?sum+=30;
?????????month--;
?????????case?8:?sum+=31;
?????????month--;
?????????case?7:?sum+=31;
?????????month--;
?????????case?6:?sum+=30;
?????????month--;
?????????case?5:?sum+=31;
?????????month--;
?????????case?4:?sum+=30;
?????????month--;
?????????case?3:?sum+=31;
?????????month--;
?????????case?2:?sum+=28;
?????????month--;
?????????case?1:?sum+=31;
?????????break;
?????}
?????
?????????sum+=day;
?????if(year%100!=0&&year%4==0||year%400==0)
?????{
?????????printf("2008年8月8日是該年的第%d天",sum+1);
?????}
?????else
?????printf("2008年8月8日是該年的第%d天",sum);
return?0;
}


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

我算的結果不對,請問我哪里寫錯了?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號