| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 843 人关注过本帖
标题:[求助]单链表怎么排序啊?
取消只看楼主 加入收藏
起点线
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-12-7
收藏
 问题点数:0 回复次数:1 
[求助]单链表怎么排序啊?

单链表怎么从大到小排序啊?

这是比较6个学生的成绩(语言和数学)的大小,按从大到小输出学生信息.错哪里了啊?

(这只是一部分...)

#include <stdio.h>
#include <stdlib.h>
#define N struct student
#define S sizeof(N)

struct student
{
char name[15];
int num;
float yuwen;
float math;
N *next;
};

N *hilo(N *head)
{
int i,j;
N *p1,*str[6],*temp;
p1=head;

for(i=0;i<6;i++)
{
str[i]=p1;
p1=p1->next;
}

for(i=0;i<6;i++)
for(j=0;j<6;j++)
if((str[i]->yuwen+str[i]->math)<(str[j]->yuwen+str[j]->math))
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}

for(i=0;i<6;i++)
printf("%s %d %0.1f %0.1f\n",str[i]->name,str[i]->num,str[i]->yuwen,str[i]->math);

return head;
}

搜索更多相关主题的帖子: 单链 数学 student define include 
2007-06-04 14:57
起点线
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-12-7
收藏
得分:0 

楼上大哥,这样可以吗?
你说的插入与删除我知道,但是用到排序我就不知道怎么运用了.望指教.

if(str[i]->yuwen+str[i]->math<str[j]->yuwen+str[j]->math)
{
*temp->name=*str[i]->name;
temp->num=str[i]->name;
temp->yuwen=str[i]->yuwen;
temp->math=str[i]->math;

*str[i]->name=*str[j]->name;
str[i]->num=str[j]->num;
str[i]->yuwen=str[j]->yuwen;
str[i]->math=str[j]->math;

*str[j]->name=*temp->name;
str[j]->num=temp->num;
str[j]->yuwen=temp->yuwen;
str[j]->math=temp->math;
}


2007-06-05 01:45
快速回复:[求助]单链表怎么排序啊?
数据加载中...
 
   



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

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