本文主要是介绍PTA 7-237 特殊排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
输入一个整数n和n个各不相等的非负整数,将这些整数从小到大进行排序,要求奇数在前,偶数在后。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试先输入一个整数n(1<n<100),再输入n个非负整数。
输出格式:
对于每组测试,在一行上输出根据要求排序后的结果,数据之间留一个空格。
输入样例:
3
5 1 2 3 4 5
3 12 4 5
6 2 4 6 8 0 1
输出样例:
1 3 5 2 4
5 4 12
1 0 2 4 6 8
/*
奇数在前,偶数在后
同为奇数,前者大交换
一偶一奇,偶数直接放后面
同为偶数,前者大放后面
*/#include <stdio.h>void Special_sort(int arr[],int n)
{int flag=0;for(int i=0;i<n-1;i++)// 趟数{for(int j=0;j<n-1-i;j++)// 要比较的对数{flag=0;if(arr[j]%2==0 && arr[j+1]%2==0 && arr[j]>arr[j+1])// 同时为偶flag=1;else if(arr[j]%2!=0 && arr[j+1]%2!=0 && arr[j]>arr[j+1])// 同为奇数flag=1;else if(arr[j]%2==0 && arr[j+1]%2!=0)// 一偶一奇flag=1;elseflag=0;// 一奇一偶if(flag==1){int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}int main()
{int T,n;int arr[100];scanf("%d",&T);while(T--){// 输入scanf("%d",&n);for(int i=0;i<n;i++)scanf("%d",&arr[i]);//排序Special_sort(arr,n);// 打印for(int j=0;j<n;j++){if(j==n-1)printf("%d\n",arr[j]);elseprintf("%d ",arr[j]);}}return 0;
}
这篇关于PTA 7-237 特殊排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!