| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 593 人关注过本帖
标题:关于一个数组排序的编程题,求解
只看楼主 加入收藏
地狱天使79
Rank: 2
等 级:论坛游民
帖 子:21
专家分:15
注 册:2012-5-8
结帖率:37.5%
收藏
已结贴  问题点数:20 回复次数:7 
关于一个数组排序的编程题,求解
最近在学习c相关教程,在函数这一章后面,有一个练习要求编写一个程序,

将整型数组中所有小于0的元素放到所有大于0的元素的前面。解了半天没

理出头绪,不知哪位高手能指教一下。
搜索更多相关主题的帖子: 元素 
2012-05-22 14:28
小跳蚤
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:437
专家分:1623
注 册:2011-4-9
收藏
得分:5 
设两个指针p1,p2
p1在数组头,p2在数组尾
从头遍历到尾
p1所指的第一个大于0的元素和p2所指第一个小于0的数交换
直到p1>p2

不知道有没说清楚
2012-05-22 14:51
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:2 
排序算法

★★★★★为人民服务★★★★★
2012-05-22 15:17
地狱天使79
Rank: 2
等 级:论坛游民
帖 子:21
专家分:15
注 册:2012-5-8
收藏
得分:0 
指针学的不太好,但是你给我提供了一个思路,

我再用数组和循环试试。
2012-05-22 15:44
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:6 
#include<stdio.h>
void main()
{
    int a[20],b[20],i,j,n,*p,count;
    printf("请输入数字的个数:");
    scanf("%d",&n);
    printf("请输入数字:");
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    p=a;
    i=0;
    j=n-1;
    count=n;
    while(count--)
    {
        if(*p>0)
           b[i++]=*p;
        else
           b[j--]=*p;
        p++;
    }
    for(i=0;i<n;i++)
        printf("%d\t",b[i]);
    printf("\n");
}
这个你参考一下!也许会对你有帮助···
2012-05-22 15:48
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:2 
你要试着去写....那怕就写了一个库函数在那里..........实践很重要!!!
2012-05-22 15:55
chenjiahui
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2012-5-22
收藏
得分:5 
#include<stdio.h>
 void main()
 {
     int a[20],b[20],i,j,n,*p,count;
     printf("请输入数字的个数:");
     scanf("%d",&n);
     printf("请输入数字:");
     for(i=0;i<n;i++)
         scanf("%d",&a[i]);
     p=a;
     i=0;
     j=n-1;
     count=n;
     while(count--)
     {
         if(*p<0)
            b[i++]=*p;
         else
            b[j--]=*p;
         p++;
     }
     for(i=0;i<n;i++)
         printf("%d\t",b[i]);
     printf("\n");
 }楼上的修改 后  就在前面了
2012-05-22 23:20
地狱天使79
Rank: 2
等 级:论坛游民
帖 子:21
专家分:15
注 册:2012-5-8
收藏
得分:0 
不好意思,开始我把题目理解错了,我看成把小于0号元素的数放到

大于0号元素前了,{3,4,5,1,2}变成{3,1,2,4,5},这样就没法

做了。不过现在好了,看了大家的指教就会了。
2012-05-23 13:06
快速回复:关于一个数组排序的编程题,求解
数据加载中...
 
   



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

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