标题:关于链表的求助
只看楼主
Toby2
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-5-11
结帖率:0
 问题点数:0 回复次数:3 
关于链表的求助
#include <stdio.h>
#include <stdlib.h>

typedef struct stud
{
    char name[10];
    int num;
    struct stud *next;
}STU;

void InitList(STU *p)
{
    p = NULL;
}

void InsertList(STU *p)
{
    STU *newp, *cur;
    char strTmp[10];
    newp = (STU *)malloc(sizeof(STU));

    puts("请输入学生信息:");
    printf("\t学生姓名:");
    gets(newp->name);

    printf("\n\t学生学号:");
    gets(strTmp);
    newp->num = atol(strTmp);

    newp->next = NULL;

    if (p==NULL)
    {
        p = newp;
    }
    else
    {
        cur = p;
        while (cur->next)
        {
            cur = cur->next;
        }
        cur->next = newp;
    }
}

void PrintList(STU *p)
{
    STU *cur;
    int i = 1;
    if (p==NULL)
    {
        puts("链表为空!");
        return;
    }
    else
    {
        cur = p;
        do
        {
            printf("第%d个学生信息如下:", i);
            printf("\n\t学生姓名: %s", cur->name);
            printf("\n\t学生学号: %ld", cur->num);
            cur = cur->next;
        } while (cur);
    }
}

int main()
{
    STU s;

    InitList(&s);
    InsertList(&s);
    puts("============");
    PrintList(&s);
    return 0;
}

编译没问题 ,运行出错
搜索更多相关主题的帖子: next void include 
2013-02-24 12:53
周佳峰
Rank: 2
等 级:论坛游民
帖 子:12
专家分:14
注 册:2012-10-15
得分:0 
#include <stdio.h>
#include <stdlib.h>

typedef struct stud
{
    char name[10];
    long num;
    struct stud *next;
}STU;

void InitList(STU *p)
{
    p->next = NULL;
}

void InsertList(STU *p)
{
    STU *newp, *cur;
    char strTmp[10];
    newp = (STU *)malloc(sizeof(STU));

    puts("请输入学生信息:");
    printf("\t学生姓名:");
    gets(newp->name);

    printf("\n\t学生学号:");
    gets(strTmp);
    newp->num = atol(strTmp);

    newp->next = NULL;
    if (p==NULL)
    {

        p = newp;

    }
    else
    {

        cur = p;
        while (cur->next)
        {
            cur = cur->next;
        }
        cur->next = newp;
    }

}

void PrintList(STU *p)
{
    STU *cur;
    int i = 1;
    if (p->next==NULL)
    {
        puts("链表为空!");
        return;
    }
    else
    {
        cur = p;
        while (cur->next)
        {
            cur = cur->next;
            printf("第%d个学生信息如下:", i);
            printf("\n\t学生姓名: %s", cur->name);
            printf("\n\t学生学号: %d", cur->num);
            i++;
        }
    }
}

int main()
{
    STU s;

    InitList(&s);
    InsertList(&s);
    puts("============");
    PrintList(&s);
    return 0;
}
试试这个,我把它改了下,但还是你的那个只能输入1个学生,不知道是不是你想要的结果。。。
2013-02-25 13:41
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
运行出错,出什么错,期望值是什么...
怎么现在的小盆友问问题的水准这么低劣?

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-02-26 08:16
Toby2
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-5-11
得分:0 
回复 2楼 周佳峰
谢谢
2013-07-05 09:38



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




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

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