题目:给定10个整数序列,按规则排序
规则如下:1.奇数在前,偶数在后
2.奇数从大到小排序
3.偶数从小到大排序
输入:4 7 3 13 11 12 0 47 34 98
输出:47 13 11 7 3 0 4 12 34 98
(一本通上的题,做的时候出了点问题,求解)
多谢!
题目:给定10个整数序列,按规则排序
规则如下:1.奇数在前,偶数在后
2.奇数从大到小排序
3.偶数从小到大排序
输入:4 7 3 13 11 12 0 47 34 98
输出:47 13 11 7 3 0 4 12 34 98
(一本通上的题,做的时候出了点问题,求解)
多谢!
#include<stdio.h>
#include<math.h>
int main()
{
int a[10],b[10],c[10];//定义三个数组
int i,j=0,k=0,n,m,p;
for(i=0;i<10;i++){ //进入循环并进行判断
scanf("%d",&a[i]);
if(a[i]%2!=0){ //判断出奇数并将其放在另一个数组中
b[j]=a[i];
j++;
}else if(a[i]%2==0){ //判断出偶数并将其放在另一个数组中
c[k]=a[i];
k++;
}
}
for(i=0;i<=k;i++){
for(p=1;p<k;p++){
if(c[p]<c[p-1]){ //判断大小并进行排序
m=c[p];
c[p]=c[p-1];
c[p-1]=m;
}
}
}
for(i=0;i<=j;i++){
for(p=1;p<j;p++){
if(b[p]>b[p-1]){ //判断大小并进行排序
n=b[p];
b[p]=b[p-1];
b[p-1]=n;
}
}
}
for(i=0;i<j;i++){
printf("%d ",b[i]); //输出排列好的奇数数组
}
for(i=0;i<k;i++){
printf("%d ",c[i]); //输出排列好的偶数数组
}
return 0;
}