题目
输入正整数 n,再输入 n 个正整数,先将其中的奇数从小到大排序,再将偶数从大到小排序。
例如:
输入:8 2 8 5 22 3 9 11 25
输出:3 5 9 11 25 22 8 2
代码
#include<stdio.h>
#define swap(j,tmp) tmp=a[j];a[j]=a[j+1];a[j+1]=tmp
int main(){
int a[100] = {0};
int n,i,j,tmp;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&tmp);
a[i] = tmp;
}
for(i=0;i<n;i++){
for(j=0;j<n-1;j++){
if(a[j]%2==0&&a[j+1]%2==1){
swap(j,tmp);
}
if((a[j]%2)+(a[j+1]%2)==0&&a[j]<a[j+1]){
swap(j,tmp);
}
if((a[j]%2)+(a[j+1]%2)==2&&a[j]>a[j+1]){
swap(j,tmp);
}
}
}
for(i=0;i<n;i++)printf("%d ",a[i]);
return 0;
}
标签:tmp,25,22,int,C语言,规则,排序
From: https://www.cnblogs.com/Shin404/p/16902735.html