題目要求
編寫程序,使a[5]={2,4,1,-5,9},中的元素從小到大排序
思路分析
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
簡而言之
第一輪
- 2,4,1,-5,9 //2和4比較,2比4小,不做交換
- 1,4,2,-5,9 //2和1比較,2 比1大,交換
- 1,4,-5,2,9 //2和 -5比較,2比 -5大,交換
- 1,4,-5,2,9 //2和9比較,2比9小,不做交換
第二輪 //接着第一輪最後的結果進行
- 1,-5,4,2,9 //4和 -5比較,4比 -5 大,交換
- 1,-5,2,4,9 //4和2比較,4比2大,交換
- 1,-5,2,4,9 //4和9比較,4比9小,不交換
第三輪 //接着第二輪最後的結果進行
- -5,1,2,4,9 //1和-5比較,1比-5大,交換
- -5,1,2,4,9 //1和2比較,1比2小,不交換
第四輪 //接着第三輪最後的結果進行
- -5,1,2,4,9 //1和-5比較,1比-5大,交換
然後輸出結果
擼寫代碼
#include"stdio.h"
#define N 5 //宏定義
int main ()
{ int a[N];
int i,j,t;
printf("請輸入%d個元素:\n",N);
for(i<0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=N-1;i++)
{ for(j=0;j<N-i;j++)
{ if(a[j]>a[j+1])
{ t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("這些元素從小到大排列是 :\n");
for(i=0;i<N;i++)
{
printf("%d\t",a[i]);
}
}
測試結果