同学你好,可以看看我这个示例:
#include<stdio.h>
int main(void)
{
// 定义整型数组变量a,长度为10
int a[10];
// 定义三个整型变量i, j, t;
int i, j, t;
// 提示性输出
printf("输入10个数:\n ");
// for循环10次,读取输入的10个数
for(i = 0; i < 10; i++)
scanf("%d", &a[i]);
// 打印换行
printf("\n");
//
/*
冒泡排序
排序前:
10 9 8 7 6 5 3 4 2 1
排序中:
第1趟排序:9 8 7 6 5 3 4 2 1 10
第2趟排序:8 7 6 5 3 4 2 1 9 10
第3趟排序:7 6 5 3 4 2 1 8 9 10
第4趟排序:6 5 3 4 2 1 7 8 9 10
第5趟排序:5 3 4 2 1 6 7 8 9 10
第6趟排序:3 4 2 1 5 6 7 8 9 10
第7趟排序:3 2 1 4 5 6 7 8 9 10
第8趟排序:2 1 3 4 5 6 7 8 9 10
第9趟排序:1 2 3 4 5 6 7 8 9 10
从 第一个元素 开始,如果比后面的元素 大,
会一步步的被交换到最后,直到遇到 不比当前元素大 的元素
在排序过程中,大的元素会被 一步步交换 到 后面,直到所有的元素
后面都没有比自己大的元素,那么排序就完成了
*/
for(j = 0; j<9; j++)
{
for(i = 0; i < 9-j; i++)
if(a[i] > a[i + 1]) {
t = a[i];
a[i] = a[i + 1];
a[i + 1]=t;
}
printf("第%d趟排序:", j + 1);
for(i = 0; i < 10; i++)
printf("%d ", a[i]);
printf("\n");
/**
**/
}
// 打印排序后的数组
printf("排序后:\n");
for(i = 0; i < 10; i++)
printf("%d", a[i]);
printf("\n");
return 0;
}
对程序的步骤都做了注释,相信你应该能看得懂