蒜术师给了你一个 1010 个整数的序列,要求对其重新排序。排序要求:
-
奇数在前,偶数在后;
-
奇数按从大到小排序;
-
偶数按从小到大排序。
输入格式
输入一行,包含 1010 个整数,彼此以一个空格分开,每个整数的范围是大于等于 00,小于等于 100100。
输出格式
按照要求排序后输出一行,包含排序后的 1010 个整数,数与数之间以一个空格分开。
#include <stdio.h>
int main() {
int n = 10, i, j, t;
int a[10];//整数数组
for (i = 0; i < n; i++) { //输入10 个整数
scanf("%d", &a[i]);//输入一个整数,输入数组a的第i个值
}
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1; j++) {
if (a[j] % 2 == 0 && a[j + 1] % 2 != 0 || a[j] % 2 != 0 && a[j + 1] % 2 != 0 && a[j] < a[j + 1] || a[j] % 2 == 0
&& a[j + 1] % 2 == 0 && a[j] > a[j + 1]) {
//判断奇偶数,并判断大小
//若a[j]为奇数,a[j+1]为偶数
//若a[j]为奇数,a[j+1]为奇数且a[j] < a[j+1]
//a[j]为偶数,a[j+1]为偶数且a[j] > a[j+1]
t = a[j];//a[j]赋值给t
a[j] = a[j + 1];//a[j+1]赋值给a[j]
a[j + 1] = t;//t赋值给a[j+1]
}
}
}
for (i = 0; i < n; i++) {
printf("%d ", a[i]);//输出结果
}
return 0;
}