问题:用冒泡法对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 }
执行结果: