| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 368 人关注过本帖
标题:请教前辈一个链表的问题
取消只看楼主 加入收藏
heboqian
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2009-7-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
请教前辈一个链表的问题
请教前辈,为什么在提示完“please input the record which you want to insert:”接收数据的时候当我刚输入完age的值的时候一敲回车就
自动退出了,我还有一个数组mark[3]没赋值呢。
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

#define LEN sizeof(struct student)

struct student
{
    char name[30];
    long number;
    char gender;
    int age;
    float mark[3];
    struct student *next;
};

int record = 0;

struct student *listinsert(struct student *head);

int main(void)
{
    struct student *head;
    head = initlist();
    head = listinsert(head);
    getch();
    return 0;
}

struct student *initlist(void)
{
    struct student *head;
    head = NULL;
    return head;
}

struct student *listinsert(struct student *head)
{
    struct student *p1, *p2, *pi;
    p1 = p2 = head;
    printf("please input the record which you want to insert:\n");
    pi = (struct student *)malloc(LEN);
    scanf("%s %ld %c %d",&pi->name,&pi->number,&pi->gender,&pi->age);
    printf("please input the score:\n");
    scanf("%f %f %f",&pi->mark[0],&pi->mark[1],&pi->mark[2]);
    if(p1 == NULL)
    {
        head = pi;
        pi->next = NULL;
        record++;
        goto end;
    }
    if(pi->number <= head->number)
    {
        pi->next = head;
        head = pi;
        record++;
        goto end;
    }
    while((pi->number > p1->number) && (p1->next != NULL))
    {
        p2 = p1;
        p1 = p1->next;
    }
    if(pi->number <= p1->number)
    {
        if(p1->next == NULL)
        {
            p1->next = pi;
            pi->next = NULL;
            record++;
        }
        else
        {
            p2->next = pi;
            pi->next = p1;
            record++;
        }
    }
    else
    {
        p1->next = pi;
        pi->next = NULL;
        record++;
    }
end:
        printf("end!\n");
    return head;
}
搜索更多相关主题的帖子: 链表 前辈 
2009-07-27 14:45
heboqian
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2009-7-22
收藏
得分:0 
回复 2楼 godbless
多谢前辈指导,可是问题还是没有解决,这个程序在编译的时候没有错误,错误出现在运行过程中
2009-07-27 16:36
heboqian
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2009-7-22
收藏
得分:0 
回复 4楼 godbless
在提示完“please input the record which you want to insert:”接收数据的时候,没等把数据都输入完,就退出了。
比如:
开始运行程序。。。
屏幕提示:please input the record which you want to insert:
依次输入:
xiaoming 回车
1001 回车
m 回车
25 回车
就在我输入完25后一敲回车就退出了,但是我后面还有三个数据(mark[3])要输入呢。
2009-07-27 17:13
heboqian
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2009-7-22
收藏
得分:0 
回复 6楼 godbless
我试过了用GCC没问题,可能是我的win-tc编译器出了问题,多谢前辈了
2009-07-27 18:00
快速回复:请教前辈一个链表的问题
数据加载中...
 
   



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

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