这个输出咋有错误呀?
- C/C++ code
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; //在使用的时候Linklist的作用当做一种变量类型void init_Linklist(Linklist &l){ l=(Linklist)malloc(sizeof(Node)); l->next=NULL; }void head_insert(Linklist l){ Node *p,*q; char c='e'; int flag=1; int no; char name[MAX]; int math; int eng; p=l; 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; p->next=q; p=q; } else break; } }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;}为啥打印完了,就弹出错误?
[解决办法]
- C/C++ code
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; [color=#FF0000]q->next = NULL; // 加上这个就好[/color] p->next=q; p=q; } else break; } }
[解决办法]
- C/C++ code
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; //在使用的时候Linklist的作用当做一种变量类型Linklist l; //改成这样试试!!!!!!!!!1void init_Linklist(){ l=(Linklist)malloc(sizeof(Node)); l->next=NULL; }void head_insert(){ Node *p,*q; char c='e'; int flag=1; int no; char name[MAX]; int math; int eng; p=l; 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; p->next=q; p=q; } else break; } }void print(){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(){init_Linklist(l);head_insert(l);print(l);return 0;}