首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这个输出咋有异常呀

2012-03-17 
这个输出咋有错误呀?C/C++ codetypedef char Elemtype#defineMAX 20typedef struct Node{Elemtype datai

这个输出咋有错误呀?

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;} 

热点排行