1. 程式人生 > >ACMNO.18 C語言-選擇排序 用選擇法對10個整數從小到大排序。 輸入 10個整數 輸出 排序好的10個整數

ACMNO.18 C語言-選擇排序 用選擇法對10個整數從小到大排序。 輸入 10個整數 輸出 排序好的10個整數

題目描述

用選擇法對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結果:
在這裡插入圖片描述