用C语言写一个从大到小的排序函数,要求输入参数为指针
时间: 2024-03-12 20:50:05 浏览: 19
好的,以下是用C语言编写的从大到小排序的函数,它的输入参数为指针:
```c
void sort_descending(int* arr, int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (*(arr + j) > *(arr + i)) {
temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
}
}
```
这个函数使用了选择排序的方法,首先从数组的第一个元素开始,依次比较后面的元素,如果后面的元素比当前元素大,则交换两个元素的位置。这样,每完成一轮比较,最大的元素就会被交换到数组的最前面。重复这个过程,直到整个数组被排序。
相关问题
用C语言指针针写一个从键盘随机输入三个整数按由小到大的顺序输出
好的,以下是用C语言指针实现的代码:
```c
#include <stdio.h>
void sort(int *a, int *b, int *c)
{
if (*a > *b) {
int temp = *a;
*a = *b;
*b = temp;
}
if (*a > *c) {
int temp = *a;
*a = *c;
*c = temp;
}
if (*b > *c) {
int temp = *b;
*b = *c;
*c = temp;
}
}
int main()
{
int a, b, c;
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
sort(&a, &b, &c);
printf("从小到大排序后的结果是:%d %d %d\n", a, b, c);
return 0;
}
```
这段代码首先定义了一个 `sort` 函数,它接受三个整数指针作为参数,并将它们按由小到大排序。然后在主函数中,我们读取三个整数,调用 `sort` 函数进行排序,最后输出排序后的结果。
需要注意的是,在调用 `sort` 函数时,我们需要传递三个整数的地址,即 `&a`, `&b`, `&c`,这样 `sort` 函数才能修改它们的值。在函数内部,我们使用 `*a`、`*b`、`*c` 来访问这三个整数的值。
你可以将这段代码复制到你的编辑器中,并编译运行它。它会读取三个整数,并按由小到大的顺序输出它们。
用指针变量的方法c语言输入三个整数从小到大排序
好的,以下是一个使用指针变量的方法,实现输入三个整数从小到大排序的C语言代码示例:
```c
#include <stdio.h>
void sort(int *a, int *b, int *c) {
int temp;
if (*a > *b) {
temp = *a;
*a = *b;
*b = temp;
}
if (*a > *c) {
temp = *a;
*a = *c;
*c = temp;
}
if (*b > *c) {
temp = *b;
*b = *c;
*c = temp;
}
}
int main() {
int a, b, c;
printf("请输入三个整数:");
scanf("%d%d%d", &a, &b, &c);
sort(&a, &b, &c);
printf("从小到大排序:%d %d %d\n", a, b, c);
return 0;
}
```
在这个代码中,我们首先定义了三个整数变量:a、b、c。然后,通过`scanf`语句,从用户输入中获取这三个整数的值。
接下来,我们定义了一个名为`sort`的函数,用于对三个数进行排序。这个函数有三个参数,分别是指向a、b、c三个变量的指针。在函数中,我们使用指针变量和临时变量temp来交换变量的值,实现了对三个数的排序。
最后,在主函数中,我们调用了`sort`函数,并将a、b、c三个变量的地址传递给了函数。最后,我们使用`printf`语句将排序后的结果输出到屏幕上。
需要注意的是,在调用`sort`函数时,我们需要传递a、b、c三个变量的地址,即使用`&`符号来取地址。