| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 734 人关注过本帖
标题:求各位高手帮忙,我在弄一个排序问题。
只看楼主 加入收藏
杨松松
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:98
专家分:142
注 册:2011-12-3
收藏
得分:4 
为啥不用选择法呢,整这么麻烦
2012-03-13 10:55
简体字01
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:137
注 册:2012-3-4
收藏
得分:0 
回复 10楼 有容就大
求解。
2012-03-13 11:16
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:10 
问题出在这里:
 for(i=0;i<num_rec-1;i++)         
    {         
        for(j=i+1;j<num_rec;j++)            
        {         
            if(a[i]<a[j])     // a数组与结构体同时比较交换只处理结构体没处理辅助数组 必然出现重复比较和混乱排序            
            {                 
                t=stu[i];            
                stu[i]=stu[j];                 
                stu[j]=t;                 
            }            
        }         
    }     


[ 本帖最后由 有容就大 于 2012-3-13 12:14 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-03-13 11:55
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
程序代码:
void score_chart1(int a[])               
{    
    struct student t;
    int i,j,temp;
    for(i=0;i<num_rec-1;i++)        
    {        
        for(j=i+1;j<num_rec;j++)            
        {        
            if(a[i]<a[j])                
            {  
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
                t=stu[i];            
                stu[i]=stu[j];                
                stu[j]=t;                
            }            
        }        
    }    
   
} 
在排序函数中处理下辅助数组即可

梅尚程荀
马谭杨奚







                                                       
2012-03-13 12:15
简体字01
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:137
注 册:2012-3-4
收藏
得分:0 
回复 13楼 有容就大
感觉有点通了,就是说结构体换了,但是a数组的值并没有变化,是这样吗??
我现在把排序函数改成这样:
void score_chart1(int a[])               
{     
    struct student t;
    int i,j,temp;
    for(i=0;i<num_rec-1;i++)         
    {         
        for(j=i+1;j<num_rec;j++)            
        {         
            if(a[i]<a[j])                 
            {                 
               
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
                t=stu[i];            
                stu[i]=stu[j];                 
                stu[j]=t;                 
            }
        }         
    }     
   
}
随便试了一下,好像还行。拜托再看看,不知道还有没有问题???
真的非常感谢。
2012-03-13 12:29
简体字01
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:137
注 册:2012-3-4
收藏
得分:0 
回复 14楼 有容就大
哦哦。恩恩,知道了。谢谢啊。
2012-03-13 12:30
简体字01
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:137
注 册:2012-3-4
收藏
得分:0 
回复 11楼 杨松松
不知道选择法怎么弄???
2012-03-13 12:31
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:2 

编程之路定要走完……
2012-03-13 12:43
快速回复:求各位高手帮忙,我在弄一个排序问题。
数据加载中...
 
   



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

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