#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//这个宏,定义交换两个数a,b,其中t是交换临时变量
#define SWAP(a, b) do {int t = a; a = b; b = t; } while(0)
int bubblesort_t(int* arr, int len)
{
for (int ed = len-1; ed > 0; --ed) // ed 控制内循环的结束边界
{
for (int iter = 0; iter < ed; ++iter) // 内循环,it遍历从 0 至 ed-1
{
if ( !(arr[iter] <= arr[iter+1]) ) // 大小比较,比较方式直接决定排序的方式
{
SWAP(arr[iter], arr[iter+1]);
// 对不符合比较结果的,使其交换,以符合比较的方式
}
}
}
return 0;
}
int main()
{
int nums[100];
int n_nums = 10, n;
srand((unsigned)time(NULL)); /* 初始化随机数 */
for (n=0; n < n_nums; n++)
{
nums[n] = rand() % 99 + 1;
/*利用rand()函数产生随机数,%99表示产生随机数不超过三位数*/
}
printf("排序前:\n");
for (n=0; n < n_nums; n++)
{
printf("%d ", nums[n]);
/*在显示屏上输出由上面随机产生的数字*/
}
bubblesort_t(nums, n);
printf("\n排序后:\n");
for (n=0; n < n_nums; n++)
{
printf("%d ", nums[n]);
}
scanf("%*s");
return 0;
}