リスト再質問
前にリストについて質問した者です
#include <stdio.h>
#include <stdlib.h>
typedef struct _node{
char name[100];
int koku;
int suu;
int eig;
int gou;
struct _node *next;
}Node;
int main(void)
{
Node *a[5];
Node *head;
Node *crnt,*p,*t,dummy;
int data, swap;
int i;
head=(Node*)malloc(sizeof (Node));
head=NULL;
crnt=NULL;
head=(Node*)malloc(sizeof (Node));
printf("名前:");
scanf("%s",head->name);
printf("国語 数学 英語 : ");
scanf("%d %d %d",&head->koku,&head->suu,&head->eig);
head->gou=(head->koku+head->suu+head->eig);
a[0]=head;
a[0]->next=NULL;
for(i=1;i<5;i++)
{
a[i]=(Node*)malloc(sizeof (Node));
printf("名前:");
scanf("%s",a[i]->name);
printf("国語 数学 英語 : ");
scanf("%d %d %d",&a[i]->koku,&a[i]->suu,&a[i]->eig);
a[i]->gou=(a[i]->koku+a[i]->suu+a[i]->eig);
a[i]->next=NULL;
}
printf("%s ",head->name);
printf("%d %d %d %d\n",head->koku,head->suu,head->eig,head->gou);
a[0]=head;
a[0]=a[0]->next;
for(i=1;i<5;i++)
{
printf("%s ",a[i]->name);
printf("%d %d %d %d\n",a[i]->koku,a[i]->suu,a[i]->eig,a[i]->gou);
a[i]=a[i]->next;
}
return 0;
}
とプログラム出来たのですが
今は入力した順に名前と点数、合計が表示するように
なってます。しかしこれを合計の値で順位をつけ
一番合計点が高い人から 名前、点数、合計を表示したいのです。入力がすべて終了したらソートするようにしたいのですが
わかりません
どうすればいいのでしょうか?
補足
普通のソートはわかるのですが リストのソートの仕方がよくわからないのです