第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

請(qǐng)學(xué)帝看看哪里不對(duì)? 為什么不能累加

#include <stdio.h>
int main()
{
??? int year = 2008;
??? int month = 8;
??? int day = 8;
??? int sum = 0;
??? int i = 1;
??? switch(month)
??? {
??????? case 1 :sum==31;
??????? case 2 :sum+=29;
??????? case 3 :sum+=31;
??????? case 4 :sum+=30;
??????? case 5 :sum+=31;
??????? case 6 :sum+=30;
??????? case 7 :sum+=31;
??????? case 8 :sum+=31;break;
??????? case 9 :sum+=30;break;
??????? case 10 :sum+=31;break;
??????? case 11 :sum+=30;break;
??????? case 12 :sum+=31;break;
??????? default :;break;
??? }
??? if(year%4==0&&year%100!=0)
??? sum=sum+day;
??? else
??? sum=sum+day+i;
??? printf("%d年%d月%d日是該年中的第%d天",year,month,day,sum);
?return 0;
}

正在回答

4 回答

理解你的思維,可是寫(xiě)反了,改為如下:

#include <stdio.h>
int main()?
{?
??? int year = 2008;
??? int month = 8;
??? int day = 8;
??? int sum = 0;
??? int i = 1;
??? switch(month)
??? {
??????? case 12 :sum==30;
??????? case 11 :sum+=31;
??????? case 10 :sum+=30;
??????? case 9 :sum+=31;
??????? 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+=0;
??????? default :;break;
??? }
??? if(year%4==0&&year%100!=0)
??? sum=sum+day;
??? else
??? sum=sum+day+i;
??? printf("%d年%d月%d日是該年中的第%d天",year,month,day,sum);
?return 0;
}

2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

我就是我顏色不一樣的 提問(wèn)者

非常感謝!
2016-06-05 回復(fù) 有任何疑惑可以回復(fù)我~

應(yīng)該是這樣吧
#include <stdio.h>
int main()
{
??? int year = 2008;
??? int month = 12;
??? int day = 8;
??? int sum = 0;
??? int i = 1;
??? switch(month)
??? {
??????? case 12 :sum+=30;
??????? case 11 :sum+=31;
??????? case 10 :sum+=30;
??????? case 9 :sum+=31;
??????? 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+=0;
??????? default :;break;
??? }
??? if((year%4==0&&year%100!=0)||year%400==0)
??? sum=sum+day+i;
??? else
??? sum=sum+day;
??? printf("%d年%d月%d日是該年中的第%d天",year,month,day,sum);
?return 0;
}

0 回復(fù) 有任何疑惑可以回復(fù)我~

month=8; ?進(jìn)入switch后就直接找case8了,然后break。就相當(dāng)于只算了一個(gè)8月份的天數(shù)。

0 回復(fù) 有任何疑惑可以回復(fù)我~

這道題中你對(duì)case語(yǔ)句后不加break;情況的理解有些偏差。

首先,我們先看看為什么結(jié)果不累加

你的程序結(jié)果為39,很明顯是31+8(day)得來(lái)的,那么這個(gè)31是怎么來(lái)的?有人可能理解為來(lái)自case 1:? ,但這里沒(méi)有break;? 即然程序到這里為什么沒(méi)有繼續(xù)執(zhí)行,而是跳出來(lái)了呢?很顯然這個(gè)31并不是這里的。那么我們看前面,因?yàn)閙outh=8,所以程序進(jìn)入swich內(nèi),應(yīng)該直接執(zhí)行case 8: 的語(yǔ)句,然后跳出來(lái),這樣就可以說(shuō)清了。

那為什么不是按照你的想法讓前8個(gè)疊加后再跳出呢,這就是理解的偏差問(wèn)題了。雖然咱們前面看到過(guò)這樣的知識(shí)點(diǎn):“在case子句后如果沒(méi)有break;會(huì)一直往后執(zhí)行一直到遇到break;才會(huì)跳出switch語(yǔ)句?!睂?shí)際上這句話的前提是“符合條件的正被執(zhí)行的case子句后如果沒(méi)有…………”,你程序中因?yàn)閙outh=8,所以程序進(jìn)入swich內(nèi),直接執(zhí)行case 8: 的語(yǔ)句,而不是case 1: 的,那也就用不上剛才提到的規(guī)則了。

希望對(duì)你有幫助!

?

2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

我就是我顏色不一樣的 提問(wèn)者

謝謝你
2016-06-05 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
C語(yǔ)言入門(mén)
  • 參與學(xué)習(xí)       927000    人
  • 解答問(wèn)題       21533    個(gè)

C語(yǔ)言入門(mén)視頻教程,帶你進(jìn)入編程世界的必修課-C語(yǔ)言

進(jìn)入課程

請(qǐng)學(xué)帝看看哪里不對(duì)? 為什么不能累加

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)