| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 443 人关注过本帖
标题:结构体的排序问题
只看楼主 加入收藏
影随风
Rank: 2
等 级:论坛游民
帖 子:38
专家分:24
注 册:2013-3-14
结帖率:85.71%
收藏
 问题点数:0 回复次数:2 
结构体的排序问题
输入学号和平均成绩,对平均成绩排序,降序输出,成绩相等则按输入输出。
我一直搞不定排序问题,调试到排序就走不动了,请帮忙啊!
#include<stdio.h>
struct student{
      int num,gread;
};
int main(void)
{
int  n,i,index,j;
struct student s[500],temp;
scanf("%d",&n);
for(i=0;i<n;i++)
    scanf("%d%d",&s[i].num,&s[i].gread);
for(i=0;i<n-1;i++){
    index=j;
    for(j=1+i;j<n;j++){
        if(s[i].gread<s[j].gread)  index=i;
        temp=s[index];
        s[index]=s[j];
        s[j]=temp;
    }
}
for(i=0;i,n;i++)
    printf("%d  %d\n",s[i].num,s[i].gread);
return 0;
}



   
搜索更多相关主题的帖子: include void index 结构体 
2013-03-16 00:23
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
收藏
得分:0 
#include<stdio.h>
struct student{
       int num,gread;
 };
 int main(void)
 {
    int  n,i,index,j;
    struct student s[500],temp;
    printf("请输入Student数量:");//你能不能给个输入提示!
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        printf("请输入第%d个Student的学号和成绩:",i+1);
        scanf("%d%d",&s[i].num,&s[i].gread);
    }
    for(i=0;i<n-1;i++)
    {
        //index=j;//这个不用
        for(j=1+i;j<n;j++)//这里是用选择排序进行从大到小排序的。
        {
            if(s[i].gread<s[j].gread)  //index=i;//这个也不用。还有,这里你敢不敢加上大括号
            {
                temp=s[i];
                s[i]=s[j];
                s[j]=temp;
            }
        }
    }
    for(i=0;i<n;i++)//这里你怎么写for(i=0;i,n;i++)呢,
                    //这样是一直成立的,n是你输入的应该是大于0的,i和n之间的逗号貌似是或的关系
        printf("%d  %d\n",s[i].num,s[i].gread);
    return 0;
 }
 //我就不吐槽你的代码缩进了,不过有个良好的编码习惯是很好的。
2013-03-16 00:47
影随风
Rank: 2
等 级:论坛游民
帖 子:38
专家分:24
注 册:2013-3-14
收藏
得分:0 
回复 2楼 shmilyflf
谢谢你了!
2013-03-16 11:16
快速回复:结构体的排序问题
数据加载中...
 
   



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

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