求debug,运行出错啊...
#include "stdafx.h"#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h> typedef char Elemtype;#define MAX 20typedef struct Node{ Elemtype data; int no; // the number of student char name[MAX]; int math; int eng; Node * next;}Node,*Linklist; void init_Linklist(Linklist *l){ *l=(Linklist)malloc(sizeof(Node)); (*l)->next=NULL;}void head_insert(Linklist l){ Node *q,*p; char c='e'; int flag=1; int no; char name[MAX]; int math; int eng; while(flag) { //c=getchar(); scanf("%s",&c); if(c!='$') { printf("请输入学号:\n"); scanf("%d",&no); printf("请输入姓名:\n"); scanf("%s",&name); printf("请输入数学成绩:\n"); scanf("%d",&math); printf("请输入英语成绩:\n"); scanf("%d",&eng); //printf("请输入英语成绩:\n"); q=(Linklist)malloc(sizeof(Node)); q->data=c; q->no=no; strcpy(q->name,name); q->math=math; q->eng=eng; q->next = NULL; // 加上这个就好 p->next=q; p=q; } else break; }}void Delete(Linklist l,int no) //删除指定学号的学生 ,L 为头指针{ Linklist q,p; p=l; if (p->next==NULL) { //return 0; printf("空链表!"); } else { if (p->next!=NULL&&p->no!=no) { q=p; p=p->next; } else q->next=p->next; //free(p); }}void print(Linklist l){ Linklist p=l->next; while (1) { if (p->next!=NULL) { printf("学号:%d\t",p->no); printf("姓名:%s\t",p->name); printf("数学成绩%d\t",p->math); printf("英语成绩%d\t",p->eng); printf("\n"); } else break; p=p->next; }}int main(){ Linklist l; init_Linklist(&l); head_insert(l); print(l); return 0;}#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h> typedef char Elemtype;#define MAX 20typedef struct Node{ Elemtype data; int no; // the number of student char name[MAX]; int math; int eng; Node * next;}Node,*Linklist; void init_Linklist(Linklist *l){ *l=(Linklist)malloc(sizeof(Node)); (*l)->next=NULL;}void head_insert(Linklist l){ Node *q,*p; char c='e'; int flag=1; int no; char name[MAX]; int math; int eng; while(flag) { //c=getchar(); scanf("%c",&c);//error if(c!='$') { printf("请输入学号:\n"); scanf("%d",&no); printf("请输入姓名:\n"); scanf("%s",&name); printf("请输入数学成绩:\n"); scanf("%d",&math); printf("请输入英语成绩:\n"); scanf("%d",&eng); //printf("请输入英语成绩:\n"); fflush(stdin); q=(Linklist)malloc(sizeof(Node)); q->data=c; q->no=no; strcpy(q->name,name); q->math=math; q->eng=eng; q->next = NULL; // 加上这个就好 p=l->next; l->next=q; q->next=p; } else break; }}void Delete(Linklist l,int no) //删除指定学号的学生 ,L 为头指针{ Linklist q,p; p=l; if (p->next==NULL) { //return 0; printf("空链表!"); } else { while (p->next->no!=no) { p=p->next; } q=p->next; p->next=q->next; free(q); //free(p); }}void print(Linklist l){ Linklist p=l->next; while (1) { if (p!=NULL) { printf("学号:%d\t",p->no); printf("姓名:%s\t",p->name); printf("数学成绩%d\t",p->math); printf("英语成绩%d\t",p->eng); printf("\n"); } else break; p=p->next; }}int main(){ Linklist l; init_Linklist(&l); head_insert(l); print(l); return 0;}