無聊的switch題,神奇的小想法

2021-08-09 21:24:03 字數 873 閱讀 3774

今天上c語言課要求使用switch語句做題

題目很無聊

輸入若干個成績

>80為優秀

60-80為通過

<60為失敗

更坑爹的是

請用switch語句完成以上問題

乍一看,這是一道純粹的if-else題,很不方便用switch,畢竟switch語句不支援這種條件的判斷。

老師用了一種很無聊的不想解釋的做法。

有同學先用if-else再用switch,我覺得這是為了switch而switch。

陳晨同學提出了一種到現在都覺得應該是這種無聊情況下的最優解法。

switch語句分三檔,0分,60分,80分。

也就是三種狀態的下限

如果乙個人的成績不是這三種成績的話,就不斷遞減,

當來到這三檔中其中一檔,就立即輸出並結束。

這種想法利用了正整數的優良性質,

我甚至在這種想法中看到了費馬無窮遞降法的影子。

缺點是問題限於整數,但已經比老師的方法適用性廣了。

看似很簡單的題目,看似無聊的過程,實際上也有有趣的奧秘在裡面,也有很細微的方法孕於其中。

最後,附標程。

#include

#include

int main(void)

if (bo) break;

x--;

}scanf_s("%d",&x);

}printf("failed:%.2f\n",(float)n1/n);

printf("passed:%.2f\n",(float)n2/n);

printf("good:%.2f\n",(float)n3/n);

system("pause");

return 0;

}

閒的無聊的簡單題

給你乙個n m的二維陣列,a i j 表示第i行第j列的數字,現在求乙個最大面積 長乘寬 的子矩形,要求對於該子矩形每一行中相鄰的兩個數,a i j 和a i j 1 存在乙個整數k使得2的k次方同時小於等於a i j 和a i j 1 並且2的 k 1 次方大於a i j 和a i j 1 對於每...

無聊時做的小練習

1,開始有一對兔子,當兔子長到3個月大的時候可以生育並且每個月生一對兔子,假設兔子不死,那麼多少個月後會有多少兔子?using system using system.collections.generic using system.linq using system.text using syst...

想越獄的小衫

故事背景 這次小杉來到了經典美劇 越獄 的場景裡 他被抓起來了 幹嘛幻想這麼鬱悶的場景 小杉身為新一代的scofield,在挖了半個月之後終於挖通牢房裡的地道。在地道裡,無數的管道路線困惑了他。若對情節有任何疑問,請 原劇 問題描述 小杉看了看自己的紋身,明白了整個管道網是由n個小房間和若干小房間之...