老師給的乙個題目,就是給定一整型陣列,已經從小到大排列,然後插入一整數,要求插入的位置使得元素還是按照從小到大的順序排列,一下是**,不過有一點小問題,值得注意
# 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 個數已...
氣泡排序(從小到大)
氣泡排序是一種極其簡單的排序演算法,也是我所學的第乙個排序演算法。它重複地走訪過要排序的元素,一次比較相鄰兩個元素,如果他們的順序錯誤就把他們調換過來,直到沒有元素再需要交換,排序完成。這個演算法的名字由來是因為越小 或越大 的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算法的運作如下 比較相鄰...
氣泡排序詳解(從小到大)
實現 將數列中的第乙個元素和第二個元素比較數值大小,若第乙個元素比第二個元素大,則交換位置。然後再將第二個元素和第三個元素比較數值大小,第三個元素和第四個元素比較 依次不斷地比較,交換。不斷迴圈比較,直到不再發生交換,這就表明排序已完成,此時得到就是乙個有序數列。簡單來說就是不斷迴圈比較數列中相鄰元...