将数据按照奇偶排序
使用input(int a[],int n)输入10个数,使用sort(int a[],int b[],int m)将10个整数按升序排列输出,并且奇数在前,偶数在后。如果输入的10个数是:10 9 8 7 6 5 4 3 2 1 ,则输出:1,3,5,7,9,2,4,6,8,10。(编程提示:可利用2个数组变量,一个用来存放输入的整数,输入后,对这个数组进行排序,然后将数据复制到另一个数组中,先复制奇数再复制偶数)。
要求:
完成input(int a[],int n)和sort(int a[],int b[],int m)函数的实现。
程序运行结果如下:
Input 10 numbers:
3 12 7 65 8 4 17 25 36 50↙
Output: 3,7,17,25,65,4,8,12,36,50
输入格式: "%d"
输入数据提示信息:"Input 10 numbers:\n"
输出格式:
输出数据提示信息:"Output: " (注:冒号“:”的后面有一个空格)
前9个数据的输出格式:"%d,"
最后一个数据的输出格式:"%d\n"
#include<stdio.h>
#define N 10
int main(){
int a[N],b[N],i,j,n,k,temp;
printf("Input 10 numbers:\n");
for(i = 0;i<10;i++){
scanf("%d",&a[i]);
}
for(i = 0;i<10;i++){
k = i;
for(j = k+1;j<10;j++){
if(a[j]<a[k])k = j;
}
if(k!=i){
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
j=0;
for(i=0;i<10;i++)
{
if(a[i]%2==1) {b[j]=a[i]; j++;}
}
for(i=0;i<10;i++)
{
if(a[i]%2==0) {b[j]=a[i]; j++;}
}
printf("Output: ");
for(i=0;i<9;i++)
{
printf("%d,",b[i]);
}
printf("%d\n",b[9]);
return 0;
}