- 简单排序

该博客介绍了一个C语言程序,用于实现一个特定的整数序列排序算法。算法要求将10个整数按奇数在前、偶数在后,奇数从大到小、偶数从小到大的顺序进行排序。程序通过冒泡排序分别对奇数和偶数数组进行排序,然后依次输出排序后的结果。
摘要由CSDN通过智能技术生成

蒜术师给了你一个 10 个整数的序列,要求对其重新排序。排序要求:

  1. 奇数在前,偶数在后;

  2. 奇数按从大到小排序;

  3. 偶数按从小到大排序。

输入格式:

输入一行,包含 10 个整数,彼此以一个空格分开,每个整数的范围是大于等于 0,小于等于 100。

输出格式:

按照要求排序后输出一行,包含排序后的 10 个整数,数与数之间以一个空格分开。

Sample Input

4 7 3 13 11 12 0 47 34 98

Sample Output

47 13 11 7 3 0 4 12 34 98


#include<stdio.h>
int main()
{
	int a[10];
	int ans1[10],ans2[10];//定义奇数数组ans1与偶数数组ans2; 
	int x=0,y=0;
	for(int i=0;i<10;i++)
	{
		scanf("%d",&a[i]);//将一开始的数据放入a数组中; 
		if(a[i]%2!=0)
		{
			ans1[x]=a[i];//如果a数组中的是奇数放入ans1; 
			x+=1; 
		}
		else
		{
			ans2[y]=a[i];//如果a数组中是偶数放入ans2; 
			y+=1;
		}
	}
	//冒泡循环模板;x是奇数数组下标; 
	for(int i=0;i<x;i++)
	{
		for(int j=i+1,t=0;j<x;j++)
		{
			if(ans1[i]<ans1[j])//如果前一项小于后一项,将他们交换位置;即从大到小排列 
			{
				t=ans1[i];
				ans1[i]=ans1[j];
				ans1[j]=t;
			}
		}
    }
   // 冒泡循环模板;y是偶数数组下标;
    for(int i=0;i<y;i++)
    {
    	for(int j=i+1,k=0;j<y;j++)
    	{
    		if(ans2[i]>ans2[j])//如果前一项大于后一项,将他们交换位置;即从小到大排列
    		{
    			k=ans2[i];
    			ans2[i]=ans2[j];
    			ans2[j]=k;
			}
		}
	}
	for(int i=0;i<x;i++)
	{
		printf("%d ",ans1[i]);//首先输出奇数数组; 
	}
	for(int i=0;i<y;i++)
	{
		printf("%d ",ans2[i]);//接着输出偶数数组; 
	}
	return 0;
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值