今天給學生出了乙個簡單的題目,題目如下:
輸入四個變數a, b, c, d,並將它們按照從大到小進行排序並輸出。要求用if語句完成。
下面我將給大家看一下,如何去實現?
首先,我們先分析一下這道題的意思,它是要求我們將四個數從小到大進行輸出,所以,我們必須找個最大值,然後再去找到其次的最大值,怎麼去一步一步的找?
假如變數a, b, c, d四個。步驟如下:
1. 如果a小於b,我們需要將a, b的值進行互換對調,也就是a中的值要放最大值。
2. 如果a小於c,我們也需要將a和c的值進行互換,保證每次比較後a中的值都是最大的。
3. 如果a小於d,我同樣要將a和d的值進行互換,這要在四個數比較後,a中存的值是最大的。既然現在最大值已經放到a中,下面我們就需要找到其次的最大值。同樣的道理,如下:
4. 如果b小於c,將b和c的值互換,保證b中值最大。
5. 如果b小於d,同樣要將b和d值互換,保證b中值最大。這要就能確保b中的值是小於a後的最大乙個值,那麼剩下來,用同樣的方法將c中存第三大的數,如步驟6。
6. 如果c小於d,需要將c和d值互換,這樣就完成了四個值的排序。
這就是以後陣列要將的選擇排序方法。那它的**實現又是怎麼的樣的呢?
我下面給大家演示if的方法:
**如下:
#include
void main()
結果為:
可以看到,排序能能夠正確進行。
從程式結構來看,該過程很簡單,重複的語句較多,那麼我們怎樣將其程式語言變得精練一些呢?自己想想看,我後期會更新
四個數比較大小 遞迴解法
今天在群裡水的時候,看到有的同學提到這個問題,然後我就在電腦上自己敲了一遍。下面說一下我的解題思路 首先這個題目就是簡單的最值問題。這個問題一般的話有兩個思路 1 定義乙個數為最值,然後與其餘的數進行比較然後比較,找出最值。2 對所有的數進行排序,然後從排序好的數裡面就可以找到最值。當然排序的方法有...
double比較大小
參考 comparing floating point numbers 總結幾點 0.float佔4byte,精度是6 7位 double佔8byte,精度是15 16位。1.因為double型別或float型別都是有精度的,其實都是取的近似值,所以有個誤差。和乙個很小的數比如0.00000001 ...
1235 比較大小
比較大小 time limit 1000ms memory limit 65536k total submit 145 accepted 51 description 輸入兩個十進位制整數a,b,請判斷它們的大小關係。我們重新定義兩個數的大小比較規則為 誰的二進位制表示中含1的個數多誰大,若含1的個...