题目:
接受若干非负整数,当个数超过10个或者遇到负数时停止接受,将这几个整数按升序排列输出,并且奇数在前,偶数在后。 输出要求,每个数字后输出空格与其他数字隔开,最后一个数字后也有空格 例如,输入的10个数是:10 9 8 7 6 5 4 3 2 1 则输出:1 3 5 7 9 2 4 6 8 10 如输入:2 3 4 5 -1 输出:3 5 2 4
代码:
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int in[10],a[10],b[10];//a 奇数 b 偶数
int i,j=0,k=0,x,t;
for(i=0;i<10;i++){
cin>>in[i];
if(in[i]<0){
i--;
break;
}
if(in[i]%2){
a[j++]=in[i];
}
else{
b[k++]=in[i];
}
}
for(i=0;i<j-1;i++){
for(x=0;x<j-i-1;x++){
if(a[x]>a[x+1]){
t=a[x];
a[x]=a[x+1];
a[x+1]=t;
}
}
}
for(i=0;i<j;i++){
cout<<a[i]<<' ';
}
for(i=0;i<k-1;i++){
for(x=0;x<k-i-1;x++){
if(b[x]>b[x+1]){
t=b[x];
b[x]=b[x+1];
b[x+1]=t;
}
}
}
for(i=0;i<k;i++){
cout<<b[i]<<' ';
}
return 0;
}