解释这个程序,C语言的
发布网友
发布时间:2023-05-26 05:25
我来回答
共1个回答
热心网友
时间:2024-11-24 10:02
#include <stdio.h>
int main()
{
int i,j,temp;
int a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]); //输入10个数组元素
//以下是冒泡排序算法,从小到大顺序排序
for(j=0;j<9;j++) //变量j表示需要两两比较的趟数,每一趟都把当前未排序的最大的数找出来
{
for(i=0;i<9-j;i++) //变量i表示每一趟需要两两比较的次数
if(a[i] > a[i+1]) //如果当前被访问的元素大于它后面的元素,则交换这两个元素,即让大数下沉,小数上浮
//总共10个数,总共需要比较的趟数是10-1=9趟(即j=0~8),每一趟需要比较的次数是i次(i=9-j,注意是从0开始算的,不是1的)
//第1趟(j=0),总共10个数,需要两两比较的次数是9次,第2趟还剩有9个数没确定大小顺序,需要比较的次数是8次,以此类推
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
//输出排序后的元素
for(i=0;i<10;i++)
printf("%5d,",a[i]); //输出域宽为5,右对齐方式
printf("\n");
return 0;
}