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

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

麻煩指導一下錯在哪了

#include <stdio.h>

int main()?

{?

? ? /* 定義需要計算的日期 */

? ? int year = 2008;

? ? int month = 8;

? ? int day = 8;

? ? int x, i;

? ? x == 0;

? ? switch(month)

? ? {

? ? ? ? case 1:x += day;break;

? ? ? ? case 2:x += 31;break;

? ? ? ? case 3:x += 28;break;

? ? ? ? case 4:x += 31;break;

? ? ? ? case 5:x += 30;break;

? ? ? ? case 6:x += 31;break;

? ? ? ? case 7:x += 30;break;

? ? ? ? case 8:x += 31;break;

? ? ? ? case 9:x += 31;break;

? ? ? ? case 10:x += 30;break;

? ? ? ? case 11:x += 31;break;

? ? ? ? case 12:x += 30;break;

? ? ? ? default:break;

? ? }

? ? if(year%400==0||(year%4==0 &&year%100!=0))

? ? ? ? i=1;

? ? else

? ? ? ? i=0;

? ? if(i==1&&month>2)

? ? ? ? x++;

? ? printf("%d年%d月%d日是該年的第%d天",year, month, day, x);

return 0;

}


正在回答

2 回答

case 8:x += 31;break;應該只執行這一句。

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

楚辭9318342 提問者

那我該怎么改呢……
2021-03-01 回復 有任何疑惑可以回復我~
#2

qq_慕斯3305490 回復 楚辭9318342 提問者

我寫的也是跟參考答案那樣差不多的
2021-03-01 回復 有任何疑惑可以回復我~

http://img1.sycdn.imooc.com//6064326600017ae208620361.jpg

有一個大神寫的這個代碼原理是:當case=8時才開始運行代碼,在case12;case 11;case=10;case=9并不會運行代碼;是因為month=8,要從8開始,運行8后,為什么不跳出去,而繼續運行,是因為沒有8的后面并沒有break,所以代碼就會一直運行,直至遇到default中的break才會跳出,這就導致了date一直進行累加。而你在8的后面加了break,所以導致代碼跳出去,從而date并不會進行累加。

希望能幫到你。

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

藍色的藍莓

本人佩服那位大神的c語言基礎,我也是想了一會才明白哪位大神的原理,一個字:服
2021-03-31 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

麻煩指導一下錯在哪了

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

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

幫助反饋 APP下載

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

公眾號

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