输入一串用空格隔开的数字串,对于数字串的奇数位按升序排序,偶数位按降序排序.
示例输入:
4 6 2 3 6 7 8 1
处理过程:
奇数位:4 2 6 8 升序排序结果: 2 4 6 8
偶数位:6 3 7 1 降序排序结果: 7 6 3 1
结果输出:2 7 4 6 6 3 8 1
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int N,n,i,j;
int *arr;
int tmp;
printf("Please input the number of digits:");
scanf("%d",&N);
arr=(int)malloc(sizeof(int)*N);
printf("Please input %d digits:",N);
for(i=0;i<N;i++)
{
scanf("%d",&n);
arr[i]=n;
}
for(i=0;i<N-1;i=i+2)
{
for(j=i;j<N-1;j=j+2)
{
if(arr[i]>arr[j])
{
tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
}
}
for(i=1;i<N-1;i=i+2)
{
for(j=i;j<N-1;j=j+2)
{
if(arr[i]<arr[j])
{
tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
}
}
printf("The results are:");
for(i=0;i<N;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
free(arr);
arr=NULL;
system("pause");
return 0;
}