c语言将十个数按大到小排序
时间: 2024-12-20 21:18:34 浏览: 5
在 C 语言中,如果你想对一组十个小数(或其他类型的数值,如整数)进行降序排序,你可以使用标准库函数 `qsort` 或自定义冒泡排序、选择排序等算法。这里我演示一种简单的选择排序方法:
```c
#include <stdio.h>
// 自定义比较函数,用于降序排列
int compare(const void *a, const void *b) {
return (*(const float*)b - *(const float*)a); // 假设是float类型
}
void selection_sort(float arr[], int n) {
for (int i = 0; i < n - 1; i++) {
int max_idx = i;
for (int j = i + 1; j < n; j++) {
if (compare(&arr[j], &arr[max_idx]) > 0) { // 如果当前元素更大,则更新最大索引
max_idx = j;
}
}
// 将找到的最大元素与第一个未排序的位置交换
float temp = arr[i];
arr[i] = arr[max_idx];
arr[max_idx] = temp;
}
}
int main() {
float numbers[10] = {4.2, 2.7, 8.9, 1.5, 6.3, 5.1, 9.7, 3.6, 7.8, 0.5}; // 十个待排序的数字
int num_elements = sizeof(numbers) / sizeof(numbers[0]);
printf("Before sorting:\n");
for (int i = 0; i < num_elements; i++) {
printf("%.1f ", numbers[i]);
}
selection_sort(numbers, num_elements);
printf("\nAfter sorting in descending order:\n");
for (int i = 0; i < num_elements; i++) {
printf("%.1f ", numbers[i]);
}
return 0;
}
```
在这个例子中,我们首先定义了一个比较函数 `compare()` 来确定元素的顺序,然后在 `selection_sort()` 函数中使用这个比较函数来进行降序排列。
阅读全文