for语句可能用来实现冒泡排序法。
具体而言,冒泡排序法须要经由过程两重轮返来实现:外层轮回把持排次序数,内层轮回把持比较跟交换。
重要的过程如下:1. 从第一个元素开端,与相邻的后一个元素比较大小,若前一个元素大年夜于后一个元素,则将两个元故旧换地位;2. 反复上一步,直到最后一个元素,最后一个元素是以后最大年夜的数;3. 顺次增加比较的数量,直到比较结束为止。
因此,经由过程for语句的嵌套轮回,可能在C言语中实现冒泡排序法,实现对一个数组停止排序。
实现过程:
(1) 经由过程两个 for 轮回实现冒泡排序的全过程,外层 for 轮回决定冒泡排序的趟数,内层 for 轮回决定每趟所停止两两比较的次数。
(2) 顺序代码如下:
#include <stdio.h>
int main()
{
int i,j,t,a[11]; //定义变量及数组为基本整型
printf("请输入10个数:\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]); //从键盘中输入10个数
for(i=1;i<10;i++) //变量i代表比较的趟数
for(j=1;j<11-i;j++) //变最j代表每趟两两比较的次数
if(a[j]>a[j+1])
{
t=a[j]; //产利用旁边变童实现两值调换
a[j]=a[j+1];
a[j+1]=t;
}
printf("排序后的次序是:\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]); //将胃泡排序后的次序输出
printf("\n");
return 0;
}
运转成果:
请输入10个数:
66 32 23 45 25 5 15 69 46 37
排序后的次序是:
5 15 23 25 32 37 45 46 66 69。