标题:(1)写一个函数,对整数型数组进行排序,要求: a)函数原型为 void sort(i ...
只看楼主
never1991726
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-4-13
结帖率:33.33%
已结贴  问题点数:15 回复次数:8 
(1)写一个函数,对整数型数组进行排序,要求: a)函数原型为 void sort(int length,int *data); b)函数需要区分数组中的奇数和
(1)写一个函数,对整数型数组进行排序,要求:
a)函数原型为void sort(int length,int *data);/* length 为数组的长度/
b)函数需要区分数组中的奇数和偶数:排序后,奇数从大到小排列于数组的前端,偶数从小到大排列于数组的后端。
例如,对于输入{1,6,4,7,2,5,9,8,0,3}排序后的输出为{9,7,5,3,1,0,2,4,6,8};对于输如{11,26,33,44,66,55,74,27,62,35,77,65,88,86,59,28,40,23}排序后的输出为{77,65,59,55,35,33,27,23,11,26,28,40,44,62,66,74,86,88},等等。
搜索更多相关主题的帖子: 摄氏度 梅西 
2014-04-20 01:31
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:5 
干啥??要完整代码   如此EAsY的题目就自己开发

DO IT YOURSELF !
2014-04-20 06:18
never1991726
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-4-13
得分:0 
回复 2 楼 wp231957
怎样实现奇数在前,偶数在后,而且奇数和偶数的个数都不确定,怎样排序啊?我是新手,不是太easy啊
2014-04-20 10:05
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
得分:5 
如果要现成的程序,百度一下就可以,网上很多。
不想百度,可以自己先编一个,贴上来。如果有问题大家都会尽力帮你修改。
不过在这里,偶尔也会碰上个感兴趣的人,直接帮你编一个。
2014-04-20 10:49
never1991726
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-4-13
得分:0 
回复 4 楼 ying8501
能百度而且我理解的话就不在这问了,正是不知道奇数放前偶数放后该怎么编才问的啊?我才入手c没多久,现在有一个瓶颈,能读懂程序,编写简单常见的程序,但对于一些稍微复杂点的程序就感觉很棘手!
2014-04-20 17:06
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
得分:0 
给你一个程序,你自己整理成你所要的函数吧。
#include <stdio.h>
//从大到小排序
void sort0(int a[],int n)
{  int t,i,j,k;
 for(i=0;i<n-1;i++)
 {    k=i;   
    for(j=i+1;j<n;j++)
        if(a[k]<a[j])k=j;  
    if(k!=i)
    {t=a[k];a[k]=a[i];a[i]=t;}
 }
}
//逆序
void inr(int a[],int n)
{  int t,i,j;
 for(i=0,j=n-1;i<j;i++,j--)
 {
    t=a[j];a[j]=a[i];a[i]=t;
 }
}
//================================
void main()
{
    int a[10]={1,6,4,7,2,5,9,8,0,3};
    int i=0,j=9,temp;
  // 分离奇偶数
    while(a[i]%2==1)i++;
    while(a[j]%2==0)j--;
    while(i<j)
    {
        if( a[i]%2==0 || a[j]%2==1 )
        {temp=a[i];a[i]=a[j];a[j]=temp;}               
        while(a[i]%2==1)i++;
        while(a[j]%2==0)j--;
    }
    //排序奇偶数
    sort0(a,i);
    sort0(a+i,10-i);
    inr(a+i,10-i);
     //输出
    for(i=0;i<10;i++)
            printf("%4d",a[i]);
        printf("\n");
}
2014-04-20 17:26
鸥翔鱼游
Rank: 5Rank: 5
等 级:职业侠客
帖 子:182
专家分:323
注 册:2014-4-19
得分:5 
且学且珍惜,得认学习真正消化
2014-04-22 14:31
never1991726
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-4-13
得分:0 
回复 7 楼 鸥翔鱼游
说点有用的
2014-04-22 15:00
鸥翔鱼游
Rank: 5Rank: 5
等 级:职业侠客
帖 子:182
专家分:323
注 册:2014-4-19
得分:0 
太给力了,强烈支持!
2014-04-23 12:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-430338-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.528179 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved