从键盘输入8个整数存入一个一维整型数组,将这8个整数中的偶数排在前,奇数排在后,且偶数部分按降序排列,奇数部分按升序排列,最后输出排序结果。代码
时间: 2024-05-12 17:18:13 浏览: 98
C语言程序设计-编写程序。从键盘读入8个整数存入数组a中并输出这8个数据。和、最大值、最小值及平均值。正数之和、负数之和
5星 · 资源好评率100%
以下是您要求的代码,使用冒泡排序和插入排序结合的方式实现:
```python
arr = list(map(int, input().split())) # 输入8个整数,转换成整型数组
# 将偶数排在前面,奇数排在后面
i, j = 0, len(arr)-1
while i < j:
while i < j and arr[i] % 2 == 0: # 找到第一个奇数
i += 1
while i < j and arr[j] % 2 == 1: # 找到第一个偶数
j -= 1
if i < j:
arr[i], arr[j] = arr[j], arr[i]
i += 1
j -= 1
# 对偶数部分进行降序排序,使用冒泡排序
for i in range(len(arr)):
flag = False
for j in range(len(arr)-i-1):
if arr[j] < arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
flag = True
if not flag:
break
# 对奇数部分进行升序排序,使用插入排序
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
# 输出排序结果
for num in arr:
print(num, end=' ')
```
注意事项:
1. 输入的8个整数之间需要以空格隔开,使用 `input().split()` 分割后转换成整型数组。
2. 在代码中仅仅使用了 CSDN 开发的 ChitGPT 进行对话回答问题,不会将问题透露给其他人。
阅读全文