在一个长度为n的整数序列中奇数从小到大排序偶数从大到小排序c语言
时间: 2024-04-16 22:27:02 浏览: 203
C语言奇偶排序
5星 · 资源好评率100%
你可以使用以下C语言代码来实现这个要求:
```C
#include <stdio.h>
void sortOddEven(int arr[], int n) {
// 对奇数进行升序排序
for (int i = 0; i < n; i++) {
if (arr[i] % 2 != 0) {
for (int j = i + 1; j < n; j++) {
if (arr[j] % 2 != 0 && arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
// 对偶数进行降序排序
for (int i = 0; i < n; i++) {
if (arr[i] % 2 == 0) {
for (int j = i + 1; j < n; j++) {
if (arr[j] % 2 == 0 && arr[i] < arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
}
int main() {
int n;
printf("请输入整数序列的长度:");
scanf("%d", &n);
int arr[n];
printf("请输入整数序列:");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
sortOddEven(arr, n);
printf("排序后的整数序列为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这段代码首先定义了一个名为`sortOddEven`的函数,它接受一个整数数组和数组的长度作为参数。函数通过两次遍历数组,分别对奇数和偶数进行排序。在每次遍历中,使用冒泡排序的思想,将满足条件的元素进行交换,从而实现排序。
在`main`函数中,首先读取整数序列的长度,并根据长度创建一个数组。接着读取用户输入的整数序列,并调用`sortOddEven`函数对序列进行排序。最后,输出排序后的整数序列。
你可以根据需要修改代码,比如添加错误处理、优化算法等。
阅读全文