c语言编写函数分别用冒泡法和选择法排序,对12个浮点数,这12个浮点数放在数组。从大到小
时间: 2024-03-02 11:49:32 浏览: 21
以下是用冒泡法和选择法排序的C语言代码,对12个浮点数从大到小进行排序:
```c
#include <stdio.h>
// 冒泡排序
void bubbleSort(float arr[], int len) {
int i, j;
float temp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - 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 len) {
int i, j, maxIndex;
float temp;
for (i = 0; i < len - 1; i++) {
maxIndex = i;
for (j = i + 1; j < len; j++) {
if (arr[j] > arr[maxIndex]) {
maxIndex = j;
}
}
if (maxIndex != i) {
temp = arr[i];
arr[i] = arr[maxIndex];
arr[maxIndex] = temp;
}
}
}
int main() {
float arr[] = {3.2, 4.5, 1.6, 2.8, 5.9, 6.1, 0.3, 7.2, 2.4, 8.9, 4.3, 9.8};
int len = sizeof(arr) / sizeof(float);
int i;
printf("排序前:");
for (i = 0; i < len; i++) {
printf("%.1f ", arr[i]);
}
printf("\n");
bubbleSort(arr, len); // 冒泡排序
// selectionSort(arr, len); // 选择排序
printf("排序后:");
for (i = 0; i < len; i++) {
printf("%.1f ", arr[i]);
}
printf("\n");
return 0;
}
```
在上面的代码中,我们定义了 `bubbleSort()` 和 `selectionSort()` 两个函数来实现冒泡排序和选择排序,然后在 `main()` 函数中调用这两个函数来对数组进行排序。最后输出排序前和排序后的数组元素。
需要注意的是,由于题目要求从大到小排序,所以排序函数中的比较符号 `<` 和 `>` 需要颠倒一下。在上面的代码中,我注释掉了选择排序的函数调用,如果需要使用选择排序,只需要将 `bubbleSort()` 函数注释掉,然后将下面的注释取消即可:`// selectionSort(arr, len); // 选择排序`。