题目:输入 10 个整数,将这 10 个整数按升序排列输出,并且奇数在前,偶数在后。比如, 如果输入的 10 个数是 1 2 3 4 5 6 7 8 9 10,则输出 1 3 5 7 9 2 4 6 8 10。
思路:将输入的 10 个整数,按其就行分别放在数组 a 的左部和右部。其具体方法就是 设置两个整型变量 odd 和 even,分别表示奇数和偶数存放在数组 a 中元素的下标,odd初始 值为 0,每存放一个奇数 odd 就加 1,even初始值为 9,每存放一个偶数 even 就减 1,然后通过选择排序的方法分别对数组 a 左部的奇数和右部的偶数进行排序,最后依次进行排序结果的输出。
代码:
#include<stdio.h>
int main()
{
#define N 10
int i,j,t,odd=0,even=N-1,a[N],b[N];
printf("请输入%d个数据:",N);
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
if(a[i]%2==1) {b[odd]=a[i];odd++;}
if(a[i]%2==0) {b[even]=a[i];even--;}
}
//odd--奇数个数
for(i=0;i<odd;i++)
for(j=i+1;j<odd;j