兩個問題,求解答
#include <stdio.h>
int main()?
{
? ? int score = 87; //考試分數為87分?
? ? score/=10; ? ---------1.這里是為什么????
? ? switch(score)
? ? {
? ? ? 2. ?/*想想以下代碼為什么用這種方式;
? ? ? ? ? 這種方式的好處?*/
? ? ? ? case 10:
? ? ? ? case 9:
? ? ? ? ? ? printf("等級A");
? ? ? ? ? ? break;
? ? ? ? case 8:
? ? ? ? ? ? printf("等級B");
? ? ? ? ? ? break; ? ? ? ? ? ? ? ?//這里是不是缺點什么? ? ? ? ? ? ?
? ? ? ? case 7:?
? ? ? ? case 6:?
? ? ? ? ? ? printf("等級C");
? ? ? ? ? ? break; ? ? ? ? ? ? ? ?//這里是不是缺點什么? ?
? ? ? ? default:
? ? ? ? ? ? printf("等級D");
? ? ? ? ? ? break; ? ?
? ? }
? ? return 0;
}
2016-07-29
1).87/=10是取該數的十位,因為下邊的case是根據十位數進行判斷。
2).這樣用使代碼較為簡潔,如果用區(qū)間判斷的話,就比較麻煩。
2016-07-29
非常謝謝
2016-07-29
因為這是等級判斷,而且最小的分數差是10,所以除以10,如果是20分一個等級則除以20,這樣可以減少代碼長2.度。
因為switch代碼對于區(qū)間之間的劃分更簡單,這題還沒有明顯的·體現,大數字的等級判定則會將switch代碼的優(yōu)點·體現出來。
2016-07-29
嗯嗯,好的,謝謝,謝謝