编写一个函数函数功能是按降序排序(假设输入3个数)。用 c 语言函数
时间: 2023-12-03 22:46:14 浏览: 90
以下是一个用 C 语言编写的函数,可以实现按降序排列三个数字:
```c
#include <stdio.h>
void sort_descending(int *a, int *b, int *c) {
int temp;
if (*a < *b) {
temp = *a;
*a = *b;
*b = temp;
}
if (*b < *c) {
temp = *b;
*b = *c;
*c = temp;
}
if (*a < *b) {
temp = *a;
*a = *b;
*b = temp;
}
}
int main() {
int a, b, c;
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
sort_descending(&a, &b, &c);
printf("按降序排列后的结果为:%d %d %d\n", a, b, c);
return 0;
}
```
在这个函数中,我们使用指针来传递三个整数的地址,以便在函数中修改它们的值。然后,我们使用冒泡排序的算法来比较三个数字,并按降序排列它们。最后,我们在主函数中调用这个函数,并输出排序后的结果。
相关问题
编写一个函数函数功能是按降序排序(假设输入3个数)。c 语言,但不能使用指针
以下是一个简单的按降序排序函数的C代码,其中没有使用指针:
```c
#include <stdio.h>
void sort_descending(int a, int b, int c)
{
int max, mid, min;
if (a >= b && a >= c) {
max = a;
if (b >= c) {
mid = b;
min = c;
} else {
mid = c;
min = b;
}
} else if (b >= a && b >= c) {
max = b;
if (a >= c) {
mid = a;
min = c;
} else {
mid = c;
min = a;
}
} else {
max = c;
if (a >= b) {
mid = a;
min = b;
} else {
mid = b;
min = a;
}
}
printf("%d %d %d\n", max, mid, min);
}
int main()
{
int x, y, z;
printf("Enter three integers: ");
scanf("%d %d %d", &x, &y, &z);
printf("Numbers in descending order: ");
sort_descending(x, y, z);
return 0;
}
```
该函数接受三个整数作为参数,并使用条件语句将它们按降序排列。最后,函数以该顺序打印这三个数字。该函数没有使用指针,但可以实现简单的按降序排序。
输入10-20个数字,使用选择排序法,按降序排序输出
选择排序是一种简单直观的排序算法,它的工作原理每次从未排序的部分选出最大的元素,放到已排序部分的末尾。这里我会为你演示如何使用选择排序法,假设我们有10到20个随机数字,按降序排列它们。
1. 首先,遍历整个数组,找到未排序部分的最大值,并记录它的索引。
2. 将这个最大值与未排序部分的第一个元素交换位置。
3. 接着,在剩余未排序的元素中再次找出新的最大值并交换。
4. 重复此过程,直到所有元素都被排序。
以下是伪代码示例:
```python
# 假设 numbers 是包含10到20个数字的列表
numbers = [random.randint(10, 20) for _ in range(10, 21)] # 生成随机数
for i in range(len(numbers)):
# 找到未排序部分的最大值
max_index = i
for j in range(i+1, len(numbers)):
if numbers[j] > numbers[max_index]:
max_index = j
# 交换最大值到正确的位置
numbers[i], numbers[max_index] = numbers[max_index], numbers[i]
# 输出降序排列后的结果
print("降序排列:", numbers)
```
如果你需要实际的Python代码,我可以帮你编写一个函数来完成这个任务。
阅读全文