C语言降序排序整数并输出
时间: 2024-05-07 11:24:00 浏览: 79
Sure, 可以使用C语言中的qsort()函数来实现降序排序整数,代码如下:
```
#include <stdio.h>
#include <stdlib.h>
// 比较函数,用于qsort()函数中
int compare(const void* a, const void* b) {
// 转换为指针
const int* x = (const int*) a;
const int* y = (const int*) b;
// 返回y-x实现降序排序
return *y - *x;
}
int main() {
int nums[] = { 8, 2, 7, 5, 1, 9, 3, 6, 4 };
int n = sizeof(nums) / sizeof(nums[0]);
// 使用qsort()函数进行降序排序
qsort(nums, n, sizeof(int), compare);
// 输出排序后的结果
printf("Sorted array in descending order: ");
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
执行结果:
```
Sorted array in descending order: 9 8 7 6 5 4 3 2 1
```
相关问题
C语言输入整数并降序排序输出
好的,这个问题可以回答。以下是 C 代码实现:
```
#include <stdio.h>
#define MAX_NUMS 100
int main() {
int numbers[MAX_NUMS];
int num_count = 0;
printf("请输入一些整数(以-1结尾):\n");
// 读入数字,并记录它们的数量
int num = 0;
while (scanf("%d", &num) && num != -1) {
if (num_count < MAX_NUMS) {
numbers[num_count++] = num;
} else {
printf("数字超过了最大限制,只能处理前 %d 个。", MAX_NUMS);
break;
}
}
// 降序排序
for (int i = 0; i < num_count - 1; i++) {
for (int j = i + 1; j < num_count; j++) {
if (numbers[i] < numbers[j]) {
int tmp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = tmp;
}
}
}
// 输出结果
printf("排序结果为:\n");
for (int i = 0; i < num_count; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
```
以c语言的形式 (1)利用函数srand()随机生成10个整数并存放到一堆数组中 (2)使用选择排序对10个整数进行降序排序 (3)输出降序排序后的10个整数
在C语言中,你可以按照以下步骤实现这个功能:
1. 首先,我们需要包含必要的头文件,并设置随机数种子以便每次运行程序能得到不同的随机数序列。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(0)); // 设置随机数种子
```
2. 定义一个数组来存储10个整数,并利用`srand()`生成随机数。
```c
int numbers[10];
for (int i = 0; i < 10; i++) {
numbers[i] = rand() % 100; // 生成0到99之间的随机整数
}
```
3. 使用选择排序算法对数组进行降序排序。这是一个简单的冒泡法实现,从大到小排列。
```c
for (int i = 0; i < 9; i++) { // 由于数组长度是10,这里循环9次
for (int j = 0; j < 9 - i; j++) {
if (numbers[j] < numbers[j + 1]) {
int temp = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = temp;
}
}
}
```
4. 最后,输出降序排序后的数组。
```c
printf("Sorted array in descending order:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
```
阅读全文