C 練習實例37 - 排序
題目:對10個數進行排序。
程式分析:可以利用選擇法,即從後9個比較過程中,選擇一個最小的與第一個元素交換, 下次類推,即用第二個元素與後8個進行比較,並進行交換。
實例
// Created by www.xuhuhu.com on 15/11/9.
//
//
#include<stdio.h>
#define N 10
int main()
{
int i,j,a[N],temp;
printf("請輸入 10 個數字:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
{
int min=i;
for(j=i+1;j<N;j++)
if(a[min]>a[j]) min=j;
if(min!=i)
{
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
printf("排序結果是:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
以上實例輸出結果為:
請輸入 10 個數字: 23 2 27 98 234 1 4 90 88 34 排序結果是: 1 2 4 23 27 34 88 90 98 234