| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 380 人关注过本帖
标题:动态链表问题
只看楼主 加入收藏
AnZai_Zero
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2011-11-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
动态链表问题
程序代码:
#include<stdio.h>
#include<malloc.h>
#define NULL 0
#define LEN sizeof(struct student)
int n=0;
struct student
{
    long int num;
    int score;
    struct student *next;
};
struct student *create(void)
{
    struct student *head;
    struct student *p1,*p2;
    p1=p2=(struct student*)malloc(LEN);
    scanf("%ld,%d",&p1->num,&p1->score);
    head=NULL;
    while(p1->num!=0)
    {
        n=n+1;
        if(n==1)
            head=p1;
        else
            p2->next=p1;
        p2=p1;
        p1=(struct student*)malloc(LEN);
        scanf("%ld,%d",&p1->num,&p1->score);
    }
    p2->next=NULL;
    return head;
}
int main(void)
{
    struct student *head,*stu;
    head=create();//创建第一个链表
    stu=create();//创建第二个链表
        print(head);//输出第一个链表
    print(stu);//输出第二个链表
    return 0;
}

第二个链表无输出,why why why???
搜索更多相关主题的帖子: color 动态 
2011-11-28 19:27
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:20 
程序代码:
#include<stdio.h>
#include<malloc.h>
#define NULL 0
#define LEN sizeof(struct student)
//int n=0;//在此处定义,则n为全局变量
struct student
{
    long int num;
    int score;
    struct student *next;
};
struct student *create(void)
{
    int n=0;///////////////////////////////////
    struct student *head;
    struct student *p1,*p2;
    p1=p2=(struct student*)malloc(LEN);
    scanf("%ld,%d",&p1->num,&p1->score);
    head=NULL;
    while(p1->num!=0)
    {
        n=n+1;
        if(n==1)
            head=p1;
        else
            p2->next=p1;
        p2=p1;
        p1=(struct student*)malloc(LEN);
        scanf("%ld,%d",&p1->num,&p1->score);
    }
    p2->next=NULL;
    return head;
}
void print(struct student *head)
{
    struct student *h=head;
    while(h)
    {
        printf("num=%ld,score=%d\n",h->num,h->score);
        h=h->next;
    }
}
int main(void)
{
    struct student *head,*stu;
    printf("创建第一个链表\n(输入格式:num1,score1 num2,score2 。。。 0,0)\n");
    //注意输入格式:num1,score1 num2,score2 。。。 0,0(空格可以换成回车)
    head=create();//创建第一个链表
    printf("创建第二个链表\n(输入格式:num1,score1 num2,score2 。。。 0,0)\n");
    //注意输入格式:num1,score1 num2,score2 。。。 0,0(空格可以换成回车)
    stu=create();//创建第二个链表
    printf("输出第一个链表\n");
    print(head);//输出第一个链表
    printf("输出第二个链表\n");
    print(stu);//输出第二个链表
    return 0;
}
2011-11-28 20:28
AnZai_Zero
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2011-11-2
收藏
得分:0 
我明白了,应该把“n”的初始化放到创建函数中去
2011-11-28 21:25
快速回复:动态链表问题
数据加载中...
 
   



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

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