单链表怎么从大到小排序啊?
这是比较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;
}