指针选择法对10个数进行由大到小的排序。 函数接口定义: void sort(int *x,int n); 函数sort中 x 和 n 都是用户传入的参数。函数将指针x所指数组中的n个元素按选择法降序排序。用C语言编译
时间: 2024-05-10 13:15:33 浏览: 18
以下是实现指针选择排序的C语言代码:
```
void sort(int *x, int n) {
int *p, *q, temp;
for (p = x; p < x + n - 1; p++) {
for (q = p + 1; q < x + n; q++) {
if (*q > *p) {
temp = *p;
*p = *q;
*q = temp;
}
}
}
}
```
在主函数中,可以先定义一个数组并初始化,然后调用sort函数进行排序:
```
int main() {
int arr[10] = {9, 3, 5, 1, 8, 2, 7, 6, 10, 4};
sort(arr, 10);
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:10 9 8 7 6 5 4 3 2 1,即按照从大到小的顺序排列。
相关问题
从键盘任意输入两个整数,编程实现将其从小到大排序后重新输出。排序过程用自定义函数Sort实现,用指针作函数参数。 函数接口: void Sort(int *x, int *y);
好的,我可以回答这个问题。以下是代码:
```
#include <stdio.h>
void Sort(int *x, int *y) {
if (*x > *y) {
int temp = *x;
*x = *y;
*y = temp;
}
}
int main() {
int a, b;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
Sort(&a, &b);
printf("从小到大排序后的结果为:%d %d\n", a, b);
return 0;
}
```
这个程序实现了从键盘任意输入两个整数,将其从小到大排序后重新输出。排序过程使用了自定义函数Sort,函数接口为:void Sort(int *x, int *y),用指针作函数参数。
编写函数,对3个整数a、b、c进行处理,使得a最小,c最大。 函数接口定义: void int3sort ( int *pa, int *pb, int *pc );
好的,以下是函数的实现代码:
```c
void int3sort(int *pa, int *pb, int *pc) {
int temp;
if (*pa > *pb) { // 保证 a <= b
temp = *pa;
*pa = *pb;
*pb = temp;
}
if (*pb > *pc) { // 保证 b <= c
temp = *pb;
*pb = *pc;
*pc = temp;
}
if (*pa > *pb) { // 再次保证 a <= b
temp = *pa;
*pa = *pb;
*pb = temp;
}
}
```
函数使用了指针参数来传递三个整数的值。在函数中,首先将 a 和 b 进行比较,如果 a 大于 b,则交换它们的值,保证 a 最小。接着将 b 和 c 进行比较,如果 b 大于 c,则交换它们的值,保证 c 最大。最后再次将 a 和 b 进行比较,以确保 a 最小。
例如,假设要对三个整数 3、1、4 进行处理,可以这样调用函数:
```c
int a = 3, b = 1, c = 4;
int3sort(&a, &b, &c);
printf("a=%d, b=%d, c=%d\n", a, b, c);
```
输出结果为:
```
a=1, b=3, c=4
```
希望能够帮到你!