問題:用冒泡法對10個數按從小到大排序
算法思想:依次比較相鄰兩個數,如果前者大於后者,則交換順序,每執行一次循環就會得出一個最大的數,此時最大值通過循環被移動最后面。
代碼:
1 #include<stdio.h> 2 int main() 3 { 4 int i,j,temp,num[10]; //定義一個含10個元素的數組 5 for(i=0;i<10;i++) 6 { 7 scanf("%d",&num[i]); //依次輸入數組元素值 8 } 9 for(i=0;i<9;i++) //循環次數 10 { 11 for(j=0;j<9-i;j++) //每次循環得出一個最大值 12 { 13 if(num[j]>num[j+1]) //如果前者大於后者,則交換位置 14 { 15 temp=num[j]; 16 num[j]=num[j+1]; 17 num[j+1]=temp; 18 } 19 } 20 } 21 for(i=0;i<10;i++) //輸出數組元素 22 printf("%d ",num[i]); 23 printf("\n"); 24 }
執行結果: