| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 345 人关注过本帖
标题:求老鸟,单项链表最后总要输出空值,怎么限制
只看楼主 加入收藏
benetqq
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2012-6-4
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
求老鸟,单项链表最后总要输出空值,怎么限制
程序代码:
#include <stdio.h>
#include <malloc.h>
typedef struct node{
    int score;
    char name[30];
    struct node *link;

}NODE;
void create(NODE *head,int n){
    NODE *p;
    for( ;n>0;n--){
        p=(NODE *)malloc(sizeof(NODE));
        if(p==NULL)
            exit(0);
        p->link=head->link;
        head->link=p;
        printf("Pleas ENter name: ");
        scanf("%s",&p->name);
        printf("Pleas ENter score: ");
        scanf("%d",&p->score);

    }
}
void print_str(NODE *head){
    NODE *p;
    p=head;
    while(p->link!=NULL){
        p=p->link;
        printf("Name: %s, Score: %d\n",p->name,p->score);
    }

}
int main(void){
    NODE *head;
    int n=0;
    printf("Pleas Enter Stu Nu:");
    scanf("%d",&n);
    create(head,n);
    print_str(head);
    getch();
    return 0;

}
图片附件: 游客没有浏览图片的权限,请 登录注册
2012-06-09 17:09
benetqq
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2012-6-4
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
还有还会出现21504的那个东东 ,菜鸟我是彻底的不淡定了额
2012-06-09 17:14
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:10 
程序代码:
void create(NODE *head,int n){
    NODE *p;
    head->link = NULL;   //加这么一句,因为一开始你的head节点的内容是未知的,所以head->link的内容不确定
    for( ;n>0;n--){
        p=(NODE *)malloc(sizeof(NODE));
        if(p==NULL)
            exit(0);
        p->link=head->link;
        head->link=p;
        printf("Pleas ENter name: ");
        scanf("%s",&p->name);
        printf("Pleas ENter score: ");
        scanf("%d",&p->score);

    }
}
2012-06-09 18:37
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:0 
程序代码:
int main(void){
    NODE *head;
    int n=0;
    printf("Pleas Enter Stu Nu:");
    scanf("%d",&n);
    create(head,n);
    print_str(head);
    getch();
    return 0;
}


还有 不要这么定义NODE *head,定义成NODE head,
因为head指针指向的内存不确定,也许head->link里存放了重要的数据,结果你一个head->link = NULL就给修改了。
而NODE head里的内容可以随便改,这是实实在在分配给你的内存。
然后create(&head,n);
然后print_str(&head);
2012-06-09 18:44
快速回复:求老鸟,单项链表最后总要输出空值,怎么限制
数据加载中...
 
   



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

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