1.输入 n 及 n 个整数( n <20),然后按奇数升序、偶数降序排列输出。 N =6 n1=1 n2=90 n3=85 n4=2 n5=10 n6=18 odd =185 Even =9018102
时间: 2023-09-06 10:12:51 浏览: 42
下面是一个 Python 的实现:
```python
n = int(input())
nums = list(map(int, input().split()))
# 将奇数和偶数分别存储在不同的列表中
odd_nums = []
even_nums = []
for num in nums:
if num % 2 == 1:
odd_nums.append(num)
else:
even_nums.append(num)
# 对奇数升序排序,对偶数降序排序
odd_nums = sorted(odd_nums)
even_nums = sorted(even_nums, reverse=True)
# 将排序后的奇数和偶数合并输出
sorted_nums = odd_nums + even_nums
for num in sorted_nums:
print(num, end=' ')
```
使用上面的代码,对于输入样例,输出结果为:
```
1 85 90 18 10 2
```
相关问题
输入n及n个整数(n<20),然后按奇数升序、偶数降序排列输出。 N=6 n1=1 n2=90 n3=85 n4=2 n5=10 n6=18 odd=185 Even=9018102
下面是 Python 代码实现:
```python
n = int(input()) # 输入数量
nums = list(map(int, input().split())) # 输入整数并转换为列表
# 分别提取奇数和偶数列表
odd_nums = [num for num in nums if num % 2 == 1]
even_nums = [num for num in nums if num % 2 == 0]
# 对奇数列表升序排列,对偶数列表降序排列
odd_nums.sort()
even_nums.sort(reverse=True)
# 输出排序后的结果
print(" ".join(str(num) for num in odd_nums + even_nums))
```
输入示例:
```
6
1 90 85 2 10 18
```
输出示例:
```
1 85 90 18 10 2
```
其中,奇数列表为 `[1, 85]`,升序排列后为 `[1, 85]`;偶数列表为 `[90, 2, 10, 18]`,降序排列后为 `[90, 18, 10, 2]`,两个列表合并后为 `[1, 85, 90, 18, 10, 2]`。
用c语言处理输入n个整数,按照奇数升序,偶数降序输出
这个问题可以回答,以下是示例代码:
```c
#include <stdio.h>
void bubble_sort(int arr[], int n) {
int i, j;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if ((arr[j] % 2 == 1 && arr[j+1] % 2 == 1 && arr[j] > arr[j+1]) ||
(arr[j] % 2 == 0 && arr[j+1] % 2 == 0 && arr[j] < arr[j+1])) {
// 如果相邻的元素都是奇数或都是偶数,并且顺序不对,则交换位置
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int n;
printf("请输入整数个数:");
scanf("%d", &n);
int arr[n];
int i;
printf("请输入%d个整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
bubble_sort(arr, n);
printf("按照奇数升序,偶数降序输出:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
下一个问题,我在前面对你说了什么?