输入n个整数,按由大到小的顺序输出。 要求编写一个函数void fun(int *p, int n),用指针作为参数,其功能为对整数数组p[]中的n个数字进行排序。数据在主函数输入,排序结果在主函数中输出。 输入: (第一行为n,第二行为所有数字) 5 34 78 23 12 69 输出如下: 78 69 34 23 12
时间: 2024-02-27 19:57:10 浏览: 43
好的,这是一个简单的选择排序问题,以下是对应的函数实现:
```c
void fun(int *p, int n) {
int i, j, max, tmp;
for (i = 0; i < n - 1; i++) {
max = i;
for (j = i + 1; j < n; j++) {
if (*(p + j) > *(p + max)) {
max = j;
}
}
if (max != i) {
tmp = *(p + i);
*(p + i) = *(p + max);
*(p + max) = tmp;
}
}
}
```
使用时,可以先读入 n 和所有数字,然后调用该函数进行排序,最后输出结果:
```c
int main() {
int n, i;
int nums[100];
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
fun(nums, n);
for (i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
希望能够对你有所帮助!