一,介绍
键盘输入10个int值,把它从大到小来排序
二,代码
#include <stdio.h>
void maopao_array_put(int *arr, int n)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (arr[j] < arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return;
}
void test01()
{
// 数值数组冒泡法排序
int arr[10] = {0};
int n = sizeof(arr) / sizeof(arr[0]);
printf("请输入%d个int类型的数值\n", n);
for (int i = 0; i < n; i++)
{
scanf("%d", arr + i);
}
maopao_array_put(arr, n);
for (int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main(int argc, char const *argv[])
{
test01();
return 0;
}
三,详细解析
-
maopao_array_put
函数是冒泡排序的核心函数,用于对传入的整数数组进行排序。它使用了两层循环,外层循环控制比较的轮数,内层循环用于比较相邻元素并进行交换。 -
在内层循环中,通过比较
arr[j]
和arr[j + 1]
的值来判断是否需要交换它们的位置。如果arr[j]
的值小于arr[j + 1]
的值,说明它们的顺序不正确,需要进行交换。 -
交换两个元素的值时,使用了一个临时变量
temp
来暂存其中一个元素的值,然后进行交换操作。 -
test01
函数用于测试冒泡排序算法。它首先定义了一个长度为 10 的整数数组arr
,并根据用户的输入为数组赋值。然后调用maopao_array_put
函数对数组进行排序。最后,使用循环遍历数组并输出排序后的结果。 -
main
函数调用了test01
函数,并返回 0 表示程序正常结束。