C语言,建立由这三组数据结点组成的简单链表

提交与自己学号相邻的两位同学的学号与一门考试成绩,编程建立由这三组数据结点组成的简单链表
样例输入
201 98 202 94 203 89
样例输出
[num=201,score=98]
[num=202,score=94]
[num=203,score=89]
#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int num;
int score;
struct Node *next;
}Node,*Linklist;
void initLinklist(Linklist &l)
{
l=(Node *)malloc(sizeof(Node));
l->next=NULL;
}
void add(Linklist &l,int i,int num,int score)
{
Node *p;
int j=0;
p=l;
for(;j<i-1;j++)
{
p=p->next;
}
Node *s;
s->num=num;
s->score=score;
s->next=p->next;
p->next=s;
printf("%d %d",s->num,s->score);
}
int main(){
Linklist L;
initLinklist(L);
int num,score;
int i;
for(i=1;i<=3;i++)
{
scanf("%d,%d",&num,&score);
add(L,i,num,score);
}
}

#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
  int num;
  int score;
  struct Node *next;
} Node, *Linklist;

void initLinklist(Linklist &l) {
  l = (Node *)malloc(sizeof(Node));
  l->next = NULL;
}

void add(Linklist &l, int i, int num, int score) {
  Node *p;
  int j = 0;
  p = l;
  for (; j < i - 1; j++) {
    p = p->next;
  }

  Node *s = (Node *)malloc(sizeof(Node));
  s->num = num;
  s->score = score;
  s->next = p->next;
  p->next = s;
}

void printLinklist(Linklist &l) {
  Node *p = l->next;
  while (p) {
    printf("[num=%d,score=%d]\n", p->num, p->score);
    p = p->next;
  }
}

void destroyLinklist(Linklist &l) {
  Node *p = l;
  while (p) {
    Node *q = p;
    p = p->next;
    free(q);
  }
  l = NULL;
}

int main() {
  Linklist L;
  initLinklist(L);
  int num, score;
  int i;
  for (i = 1; i <= 3; i++) {
    scanf("%d%d", &num, &score);
    add(L, i, num, score);
  }
  printLinklist(L);
  destroyLinklist(L);
  return 0;
}

数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633