采用数组队列,就不用写个结构体了,要写也可以,没必要
#include <stdio.h>
#include <stdlib.h>
int main(){
int n,i;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
int A[1001];
int B[1001];
int fa=0,fb=0,ra=0,rb=0;
for(i=0;i<n;i++){ //全部进队
if(a[i]%2==0){
B[rb++]=a[i];
}else{
A[ra++]=a[i];
}
}
int count = 0; //为了格式设定的
while(ra>fa&&rb>fb){//出队
if(count == 0){
printf("%d",A[fa++]);
if(ra>fa){
printf(" %d",A[fa++]);
}
printf(" %d",B[fb++]);
count++;
}else{
printf(" %d",A[fa++]);
if(ra>fa){
printf(" %d",A[fa++]);
}
printf(" %d",B[fb++]);
}
}
if(ra<=fa){ //剩余的出队
while(rb>fb){
if(count == 0){
printf("%d",B[fb++]);
count++;
}else{
printf(" %d",B[fb++]);
}
}
}else{
while(ra>fa){
printf(" %d",A[fa++]);
}
}
}