编写函数void sort(int a[N], int ud),功能为根据参数ud的值对数组进行选择法排序,ud=1时升序,否则降序。N个整数和排序方法ud在主函数中输入,提交时N设定为10。
时间: 2024-12-27 17:31:50 浏览: 3
编写一个名为`sort`的选择排序函数,其基本思想是遍历整个数组,每次找到当前未排序部分的最大(或最小)元素并交换到适当的位置。根据`ud`的值决定是升序排列还是降序排列。以下是这个函数的一个简单实现:
```c++
#include <stdio.h>
// 定义一个通用的swap函数,用于交换两个整数
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 根据ud的值选择升序或降序排序
void sort(int a[], int N, int ud) {
for (int i = 0; i < N - 1; i++) {
if (ud == 1) { // 升序
for (int j = i + 1; j < N; j++) {
if (a[i] > a[j]) {
swap(&a[i], &a[j]);
}
}
} else { // 降序
for (int j = i + 1; j < N; j++) {
if (a[i] < a[j]) { // 注意这里应该是小于号,因为是降序
swap(&a[i], &a[j]);
}
}
}
}
}
int main() {
int N = 10; // 这里是固定的,设定为10
int ud;
int arr[N]; // 存储输入的10个整数
// 在主函数中读取输入
printf("请输入排序方向(1为升序,其他为降序): ");
scanf("%d", &ud);
// 读取数组元素
for (int i = 0; i < N; i++) {
scanf("%d", &arr[i]);
}
// 调用sort函数进行排序
sort(arr, N, ud);
// 输出排序后的数组
for (int i = 0; i < N; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
阅读全文