标题:求大侠帮忙解决个链表的问题
只看楼主
cai85204550
Rank: 1
等 级:新手上路
帖 子:40
专家分:4
注 册:2011-5-14
结帖率:100%
已结贴  问题点数:20 回复次数:3 
求大侠帮忙解决个链表的问题
typedef struct link
{
    char name;
    char yuanxi;
    char xingbie;
    float data;
    struct link *next;
}link;
link *creat(link *head)
{
    int i,j=0;
    link *p=NULL;
    link *pr;
    printf("参赛人数:");   
    scanf("%d",&i);
    while(j<I)
    {
        p=(link *)malloc(sizeof(link));
        if(p==NULL)
        {
            printf("No enough memory to alloc");
            exit(0);
        }
        if(head==NULL)
        {
            head=p;
            pr=head;
            pr->next=NULL;
        }        
        else
        {
            while(pr->next!=NULL)
            {
                pr=pr->next;
            }
            pr->next=p;
            pr=pr->next;
            pr->next=NULL;
        }
        j++;
    }
    return head;
}
input(link *head)
{
    char name;
    char yuanxi;
    char xingbie;
    float data;
    link *p=head;
    while(p!=NULL)
    {
        printf("姓名:");
        scanf("%s",&p->name);
        printf("性别:");
        scanf("%s",&p->xingbie);
        printf("院系:");
        scanf("%s",&p->yuanxi);
        printf("分数:");
        scanf("%f",&p->data);
        p=p->next;
    }
}
void output(link *head)
{   
    link *p=head;
    while(p!=NULL)
    {
        printf("%10s%10s%10s%10f",p->name,p->yuanxi,p->xingbie,p->data);
        p=p->next;
    }
}
void wushi()
{
    printf("               50米比赛成绩\n");
    link *head=NULL;
    head=creat(head);
    input(head);
    output(head);
}
程序运行到output(link *head)中的printf时无法运行直接结束,请教下问题出在哪?
搜索更多相关主题的帖子: head 问题 memory 
2012-04-21 16:14
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
得分:0 
void output(link *head)
 {   
    link *p=head->next; 应该这样写
     while(p!=NULL)
     {
         printf("%10s%10s%10s%10f",p->name,p->yuanxi,p->xingbie,p->data);
         p=p->next;
     }
 }


link *creat(link *head)
 {
     int i,j=0;
     link *p=NULL;
     link *pr;
     printf("参赛人数:");   
    scanf("%d",&i);
     while(j<I)   这个大写的I是你define的吗?
 

[ 本帖最后由 share32 于 2012-4-21 16:48 编辑 ]
2012-04-21 16:47
cai85204550
Rank: 1
等 级:新手上路
帖 子:40
专家分:4
注 册:2011-5-14
得分:0 
回复 2楼 share32
这样改的意思是不是不在头结点里面存放数据,但是我照你说的改了下,还是和原来一样还是当程序运行到那一步时,被系统直接结束掉了,printf直接没用》
2012-04-21 17:01
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
得分:20 
回复 3楼 cai85204550
头节点本来就不应该存数据,把整个程序贴出来吧
2012-04-21 18:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-366293-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.279680 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved