编写函数分别用冒泡法和选择法排序,对12个浮点数,这12个浮点数放在数组。从大到小。使用C语言实现
时间: 2024-02-28 19:55:18 浏览: 63
冒泡法排序,用C语言编写的
好的,下面是使用C语言分别实现冒泡排序和选择排序的代码:
```c
#include <stdio.h>
// 冒泡排序
void bubble_sort(float arr[], int n)
{
int i, j;
float temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 选择排序
void selection_sort(float arr[], int n)
{
int i, j, max;
float temp;
for (i = 0; i < n - 1; i++) {
max = i;
for (j = i + 1; j < n; j++) {
if (arr[j] > arr[max]) {
max = j;
}
}
if (max != i) {
temp = arr[i];
arr[i] = arr[max];
arr[max] = temp;
}
}
}
int main()
{
float arr[] = { 3.2, 5.7, 2.1, 9.8, 1.5, 6.4, 8.5, 4.9, 7.6, 0.3, 2.7, 5.9 };
int n = sizeof(arr) / sizeof(arr[0]);
printf("原始数组:\n");
for (int i = 0; i < n; i++) {
printf("%.1f ", arr[i]);
}
printf("\n\n");
bubble_sort(arr, n);
printf("冒泡排序后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%.1f ", arr[i]);
}
printf("\n\n");
selection_sort(arr, n);
printf("选择排序后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%.1f ", arr[i]);
}
printf("\n\n");
return 0;
}
```
在这个程序中,我们定义了两个函数 `bubble_sort` 和 `selection_sort`,分别对应冒泡排序和选择排序。在 `main` 函数中,我们定义了一个包含12个浮点数的数组,并对它们进行排序。最后打印排序后的结果。
希望能够帮到你,如果你还有其他问题,随时可以问我。
阅读全文