VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 837|回复: 6

链表里面的对应项读入异常。。。郁闷。。。

[复制链接]

7

主题

15

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-1-6 16:30:01 | 显示全部楼层 |阅读模式
除了名字(NAME)可以正常读入,其他的都是随机值,而且SEX那边也有问题
struct stu_data//学生数据,分别记录学号,姓名,性别,年龄
{
        long num;
        char name[NAMELEN];
        char sex;
        int age;
        struct stu_data *next;
};
struct stu_data *Crt(void)//创建链表
{
        struct stu_data *head,*bk,*fwd;
        head=fwd=bk=(struct stu_data*)malloc(LEN);
                        //head不存东西,从head->next开始存
        fwd=head->next=(struct stu_data*)malloc(LEN);
        printf("Now input the number,name,sex and age in order please\n");
        printf("You can input 0 as a number to cease\n");
        while(1)         //如果输入学号为0就BREAK
        {
                printf("Num  => ");
                scanf("%ld",fwd->num);
                if (fwd->num==0)
                {
                        bk->next=NULL;
                        free(fwd);
                        break;
                }
                printf("Name => ");
                scanf("%s",fwd->name);
                printf("sex  => ");
                scanf("%c%c",fwd->sex);
                printf("age  => ");
                scanf("%d",fwd->age);
                bk=fwd;
                fwd=fwd->next=(struct stu_data*)malloc(LEN);
        }
        return (head);
}
回复

使用道具 举报

0

主题

25

帖子

14.00

积分

新手上路

Rank: 1

积分
14.00
发表于 2020-1-6 19:36:01 | 显示全部楼层
ding
异常处是
scanf("%ld",fwd->num);吗?
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-7 08:36:01 | 显示全部楼层
#include <malloc.h>
#include <iostream >
using namespace std;
struct stu_data//学生数据,分别记录学号,姓名,性别,年龄
{
        long num;
        char *name ;
        char sex;
        int age;
        struct stu_data *next;
};
struct stu_data *Crt(void)//创建链表
{
        struct stu_data *head,*bk,*fwd;
        head=fwd=bk=(struct stu_data*)malloc(sizeof(stu_data));
        //head不存东西,从head->next开始存
        fwd=head->next=(struct stu_data*)malloc(sizeof(stu_data));
        cout<<"Now input the number,name,sex and age in order please\n" ;
        cout<<"You can input 0 as a number to cease\n" ;
        while(1)         //如果输入学号为0就BREAK
        {
                cout<<"Num  => " ;
                cin>>fwd->num ;
                if (fwd->num==0)
                {
                        bk->next=NULL;
                        free(fwd);
                        break;
                }
                cout<<"Name => " ;
                cin>>fwd->name ;
                cout<<"sex  => " ;
                cin>>fwd->sex ;
                cout<<"age  => " ;
                cin>>fwd->age ;
                bk=fwd;
                fwd=fwd->next=(struct stu_data*)malloc(sizeof(stu_data));
        }
        return (head);
};


回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-7 08:51:01 | 显示全部楼层
请看看这样行不,我也不太明白的,因为我刚学。如若有误,请大家多指教,谢谢!
回复

使用道具 举报

7

主题

15

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-1-10 16:27:02 | 显示全部楼层
谢谢angel哈虽然看不懂。。。(刚刚C入门,下学期才学C++那不过还是谢谢了~~~)还有回阳光,知道错那里了,的确是SCANF,少了&,吐血啊。。。。- -!
回复

使用道具 举报

7

主题

15

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-1-10 18:09:01 | 显示全部楼层
谢谢angel了哈虽然看不懂。。。(刚刚C入门,下学期才学C++。。。,不过还是谢谢了哈~)还有回阳光,的确是栽在SCANF上了,FWD->前面少&了,吐血。。。- -!
回复

使用道具 举报

7

主题

15

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-1-10 18:36:01 | 显示全部楼层
虽然看不懂但是还是谢谢了哈~(刚C入门,下学期学C++。。。不过还是谢谢哈~)回阳光,的确死在SCANF上,少了&,吐血。。。- -!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表