課程
/后端開(kāi)發(fā)
/C
/C語(yǔ)言入門(mén)
為什么這里要把score除以10呢?
2016-01-13
源自:C語(yǔ)言入門(mén) 4-16
正在回答
1、score/10是結(jié)合隱形強(qiáng)制轉(zhuǎn)換使用。
2、case 后面跟的是整數(shù),又根據(jù) “switch后面的表達(dá)式語(yǔ)句只能是整型或者字符類型”這句話,所以我們可以判斷switch后面的表達(dá)式是整形的而不是字符型的。
3、代碼中score/10等于8.7,但是因?yàn)閟witch后面的表達(dá)式是整形的,所以程序會(huì)對(duì)8.7做隱形強(qiáng)制轉(zhuǎn)換使其轉(zhuǎn)換為整形。在c++中,小數(shù)轉(zhuǎn)換成整形時(shí)會(huì)把小數(shù)點(diǎn)部分舍棄而不是四舍五入,也就是說(shuō)8.7被轉(zhuǎn)換成8了。 這樣一來(lái),switch語(yǔ)句就會(huì)執(zhí)行case 8 這個(gè)分支,也就是輸出“等級(jí)B”。
3、score/10結(jié)合隱形強(qiáng)制轉(zhuǎn)換把分?jǐn)?shù)轉(zhuǎn)換成10、9、8、7、6等整形變量,然后參與switch分支判斷,這樣就可以實(shí)現(xiàn) 90-100分輸出“等級(jí)A”、80-90分輸出“等級(jí)B”這種目的。
張土土
比如說(shuō),他考了87分,那么87/10等于8,如果他考了93分,那么93/10等于9,也就是說(shuō),可以先通過(guò)score/10來(lái)取十位數(shù),然后看switch語(yǔ)句中有case多少與之對(duì)應(yīng),然后依次執(zhí)行完,遇到break就終止了,不會(huì)繼續(xù)往下執(zhí)行。例如:把程序中的case 8下面的那個(gè)break去掉,那么運(yùn)行結(jié)果就是等級(jí)B等級(jí)C,因?yàn)橛龅絙reak才跳出switch,你可以在想想。如下:
#include <stdio.h>
int main()?
{
? ? int score = 87; ??
? ? score/=10;
? ??
? ? switch(score)
? ? {
? ? ? ??
? ? ? ? case 10:
? ? ? ? case 9:
? ? ? ? ? ? printf("等級(jí)A");
? ? ? ? ? ? break;
? ? ? ? case 8:
? ? ? ? ? ? printf("等級(jí)B");
? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? case 7:
? ? ? ? case 6:?
? ? ? ? ? ? printf("等級(jí)C");
? ? ? ? ? ? break; ? ? ? ? ? ? ??
? ? ? ? default:
? ? ? ? ? ? printf("等級(jí)D");
? ? ? ? ? ? break; ? ?
? ? }
? ? return 0;
}
舉報(bào)
C語(yǔ)言入門(mén)視頻教程,帶你進(jìn)入編程世界的必修課-C語(yǔ)言
1 回答c語(yǔ)言入門(mén)4-4 分支結(jié)構(gòu)之嵌套
2 回答C語(yǔ)言入門(mén)4-16
1 回答c語(yǔ)言入門(mén) 4-16
3 回答C語(yǔ)言入門(mén)1—2 c程序結(jié)構(gòu)
3 回答C語(yǔ)言入門(mén) 4—13
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-01-14
1、score/10是結(jié)合隱形強(qiáng)制轉(zhuǎn)換使用。
2、case 后面跟的是整數(shù),又根據(jù) “switch后面的表達(dá)式語(yǔ)句只能是整型或者字符類型”這句話,所以我們可以判斷switch后面的表達(dá)式是整形的而不是字符型的。
3、代碼中score/10等于8.7,但是因?yàn)閟witch后面的表達(dá)式是整形的,所以程序會(huì)對(duì)8.7做隱形強(qiáng)制轉(zhuǎn)換使其轉(zhuǎn)換為整形。在c++中,小數(shù)轉(zhuǎn)換成整形時(shí)會(huì)把小數(shù)點(diǎn)部分舍棄而不是四舍五入,也就是說(shuō)8.7被轉(zhuǎn)換成8了。 這樣一來(lái),switch語(yǔ)句就會(huì)執(zhí)行case 8 這個(gè)分支,也就是輸出“等級(jí)B”。
3、score/10結(jié)合隱形強(qiáng)制轉(zhuǎn)換把分?jǐn)?shù)轉(zhuǎn)換成10、9、8、7、6等整形變量,然后參與switch分支判斷,這樣就可以實(shí)現(xiàn) 90-100分輸出“等級(jí)A”、80-90分輸出“等級(jí)B”這種目的。
2016-01-13
比如說(shuō),他考了87分,那么87/10等于8,如果他考了93分,那么93/10等于9,也就是說(shuō),可以先通過(guò)score/10來(lái)取十位數(shù),然后看switch語(yǔ)句中有case多少與之對(duì)應(yīng),然后依次執(zhí)行完,遇到break就終止了,不會(huì)繼續(xù)往下執(zhí)行。例如:把程序中的case 8下面的那個(gè)break去掉,那么運(yùn)行結(jié)果就是等級(jí)B等級(jí)C,因?yàn)橛龅絙reak才跳出switch,你可以在想想。如下:
#include <stdio.h>
int main()?
{
? ? int score = 87; ??
? ? score/=10;
? ??
? ? switch(score)
? ? {
? ? ? ??
? ? ? ? case 10:
? ? ? ? case 9:
? ? ? ? ? ? printf("等級(jí)A");
? ? ? ? ? ? break;
? ? ? ? case 8:
? ? ? ? ? ? printf("等級(jí)B");
? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? case 7:
? ? ? ? case 6:?
? ? ? ? ? ? printf("等級(jí)C");
? ? ? ? ? ? break; ? ? ? ? ? ? ??
? ? ? ? default:
? ? ? ? ? ? printf("等級(jí)D");
? ? ? ? ? ? break; ? ?
? ? }
? ? return 0;
}