为了账号安全,请及时绑定邮箱和手机立即绑定

我什么我的代码运行结果与预期有点差距呢?

我什么我的代码运行结果与预期有点差距呢?

C
TOW哈克 2017-02-11 15:10:21
#include <stdio.h> #include <stdlib.h>  typedef struct student {     int ID;     char name[20];     float score;     struct student *next; }Stu; Stu *jianli() {     Stu *p1,*p2,*head=NULL;     do     {         p1=(Stu *)malloc(sizeof(Stu));         if(head==NULL) head=p1;         else p2->next=p1;         p2=p1;         p2->next=NULL;         scanf("%d,%s,%f",&p2->ID,p2->name,&p2->score);     }while(p2->ID!=0);     return head; } void show(Stu *head) {     Stu *p=head;     while(p->next!=NULL)     {         printf("%d,%s,%f\n",p->ID,p->name,p->score);         p=p->next;     } } int main() {     Stu *s;     s=jianli();     show(s);     return 0; }
查看完整描述

2 回答

?
慕粉13202587281

TA贡献9条经验 获得超1个赞

建立链表的时候错了.

head->next = NULL;
p2 = head;
while(1){
    if((p1 = (Stu*)malloc(sizeof(Stu))) == NULL){exit(0);}
    scanf("%d,%s,%f",&p1->ID,p1->name,&p1->score);
    if(p1->ID == 0){
        free(p1);
        break;
    }else{
        p2->next = p1;
        p1->next = NULL;
        p2 = p1;
    }   
}


查看完整回答
反对 回复 2017-02-13
?
快乐的时光

TA贡献79条经验 获得超48个赞

怎么说
查看完整回答
反对 回复 2017-02-12
  • 2 回答
  • 0 关注
  • 1367 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信