ACMNO.18 C語言-選擇排序 用選擇法對10個整數從小到大排序。 輸入 10個整數 輸出 排序好的10個整數
阿新 • • 發佈:2018-12-15
題目描述
用選擇法對10個整數從小到大排序。
輸入
10個整數
輸出
排序好的10個整數
樣例輸入
4 85 3 234 45 345 345 122 30 12
樣例輸出
3
4
12
30
45
85
122
234
345
345
來源/分類
C語言
題目截圖:
思路:
首先,想到的是:氣泡排序! 每一次都挑選出一個最小的放在最前面! #define z 10 驗證的時候,輸入10個數是不是太機械啦, 索性改變終止的次數吧~就是修改陣列參與比較大小的長度! 從s[0],s[1],s[2],s[3],s[4],,,,依次來進行比較! for(i=0;i<z;i++) { for(j=i;j<z;j++) { } } 比較之後,就會與最後面最小的進行替換! 每一次,要藉助一個別的int型別變數來做一個暫存的東西~ if(s[i]>s[j]) { b=s[i]; s[i]=s[j]; s[j]=b; } 這兩個地方就是這個程式的核心精神!
程式碼:
#include<iostream> using namespace std; #define z 10 int main() { int a,b,j,i;int s[10]={0}; for(i=0;i<z;i++) { cin>>s[i]; } /*for(i=0;i<z;i++) { cout<<s[i]<<" "; }*/ for(i=0;i<z;i++) { for(j=i;j<z;j++) { if(s[i]>s[j]) { b=s[i]; s[i]=s[j]; s[j]=b; } } } //cout<<endl; for(i=0;i<z;i++) { cout<<s[i]<<endl; } }
程式碼截圖:
執行結果:
OJ結果: