c语言编写函数分别用冒泡法和选择法排序,对12个浮点数,这12个浮点数放在数组。从大到小
时间: 2024-03-01 21:56:17 浏览: 80
对数组进行 冒泡排序法——C语言代码
好的,我会根据你的要求进行回答。下面是两个函数,一个是冒泡排序,一个是选择排序,都是用来对浮点数组从大到小进行排序的:
```c
#include <stdio.h>
void bubbleSort(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 selectionSort(float arr[], int n) {
int i, j, max_idx;
float temp;
for (i = 0; i < n-1; i++) {
max_idx = i;
for (j = i+1; j < n; j++) {
if (arr[j] > arr[max_idx]) {
max_idx = j;
}
}
temp = arr[i];
arr[i] = arr[max_idx];
arr[max_idx] = temp;
}
}
```
这两个函数都接受一个浮点数组和数组的大小作为参数,然后会对数组进行排序。`bubbleSort` 函数使用了冒泡排序算法,每次比较相邻的两个数,如果前面的数比后面的数小,就交换它们的位置。`selectionSort` 函数使用了选择排序算法,每次找到未排序部分中最大的数,然后将它与未排序部分的第一个数交换位置。
如果你想要对一个包含 12 个浮点数的数组进行排序,可以这样调用这两个函数:
```c
int main() {
float arr[] = {3.5, 2.1, 5.7, 1.2, 4.6, 8.9, 2.3, 9.1, 0.5, 7.8, 6.4, 4.3};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
// 或者使用 selectionSort(arr, n);
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%.1f ", arr[i]);
}
printf("\n");
return 0;
}
```
这段代码会输出排序后的数组,从大到小排列。
阅读全文