插入從小到大的整型陣列

2021-07-22 23:25:35 字數 1031 閱讀 4042

老師給的乙個題目,就是給定一整型陣列,已經從小到大排列,然後插入一整數,要求插入的位置使得元素還是按照從小到大的順序排列,一下是**,不過有一點小問題,值得注意

# includeusing namespace std;

# define maxlen 30

int main()

; cout << "請按照從小到大的順序依次輸入整數,按回車,ctrl+z再加回車結

束輸入,中間不要按其他任何按鍵"

<< endl;

int len = 0;

while (cin>>arr[len])

cin.clear();//ctrl加z會是流失效,相當於eof,fail,用cin.clear就行

int iinsert;

cout <<"請輸入要插入的整數:";

cin >> iinsert;

int i, j;

//如果插入的數最小

if (iinsert <= arr[0])

arr[0] = iinsert;

len += 1;

}//如果插入的數最大

else

if (iinsert >= arr[len - 1])

//插入的數在中間

else

//要在i+1處插入

for (j = len ; j >= i + 2; j--)

arr[i+1] = iinsert;

len += 1;

}cout << "插入後陣列為:"

<< endl;

for (i = 0; i < len; i++)

cout << arr[i] << " ";

cout << endl;

return

0;}

之前沒有加cin.clear(),結果就是直接跳過cin>>iinsert了,因為流到了結尾了(ctrl+z),所以要重新將流設定為有效,而且輸入結束必須是這樣做的,如果不想輸入資料了,按回車,再按ctrl+z,再按回車

選擇 插入 氣泡排序(從小到大)

package com.wangzhu.main public class main work new int work new int work new int public static void work int arr 插入排序 從小到大 在要排序的一組數中,假設前面 n 1 n 2 個數已...

氣泡排序(從小到大)

氣泡排序是一種極其簡單的排序演算法,也是我所學的第乙個排序演算法。它重複地走訪過要排序的元素,一次比較相鄰兩個元素,如果他們的順序錯誤就把他們調換過來,直到沒有元素再需要交換,排序完成。這個演算法的名字由來是因為越小 或越大 的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算法的運作如下 比較相鄰...

氣泡排序詳解(從小到大)

實現 將數列中的第乙個元素和第二個元素比較數值大小,若第乙個元素比第二個元素大,則交換位置。然後再將第二個元素和第三個元素比較數值大小,第三個元素和第四個元素比較 依次不斷地比較,交換。不斷迴圈比較,直到不再發生交換,這就表明排序已完成,此時得到就是乙個有序數列。簡單來說就是不斷迴圈比較數列中相鄰元...