标题:链表问题。。
只看楼主
卡其
Rank: 2
等 级:论坛游民
帖 子:96
专家分:36
注 册:2010-8-30
结帖率:100%
已结贴  问题点数:20 回复次数:3 
链表问题。。
程序没有写完有很多错的地方。。帮忙改改
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define CHEN struct student
#define FEI sizeof(struct student)
#define NULL 0
typedef struct student
{
    int age;
    char name[10];
    char sex;
    int score;
    struct student *next;
}hong;
hong *creat(int *count);
hong *insert(hong *head);
hong *delet(hong *head);
hong *find(hong *dead);
void update(hong *head);
void print(hong *head);

void main()
{
    hong *head=NULL,*p=NULL;
    int n=0,count=0;
    printf("链表的操作");
    printf("请选择你的操作");
    printf("1 创建链表");
    printf("2 增加结点");
    printf("3 删除结点");
    printf("4 查找结点");
    printf("5 改正结点");
    printf("6 输出链表");
    printf("7 退出系统");
    //printf("8 链表排序");
    //printf("9 链表逆序");
    scanf("%d",&n);
    getchar();
    while(1)
    {
        if(n<1||n>9)
        {
            printf("你的输入有误,请重新输入\n");
            scanf("%d",&n);
        }
        else
        {
            switch(n)
            {
                csae1:head=creat(&count);break;
                case2:head=insert(head);break;
                csae3:head=delet(head);break;
                case4:update(head);break;
                csae5:find(head);break;
                csae6:print(head);break;
                csae7:exit(0);
                //csae8:
                //csae9:
            }
        }
        n=0;
        printf("请继续你的操作\n");
        scanf("%d",&n);
        getchar();
        printf("链表操作完成\n");
    }
    hong*creat(int *count)
    {
        char s='0';
        hong *head=NULL,*p,*q;
        while(1)
        {
            printf("是否要创建(y\n)");
            scanf("%c",&s);
            getchar();
            if(s=='y'&&head==NULL)
            {
                p=(CHEN *hong)malloc(FEI *hong);
                printf("请输入学生资料\n");
                scanf("%s,%s,%d,%f",&p->name,&p->sex,&p->age,&p->score);
                p->next=NULL;
                q->next=p;
                q=p;
                *count++
            }
            else if(s='n')
            {
                printf("链表结束\n");
                break;
            }
            else if(s!='y'&&s!='n')
            {
                printf("输入错误\n");
            }
        }
        return head;
    }
    hong *insert(hong *head)
    {
        int n=0;
        hong *p=NULL,*q=NULL;
        printf("请选择插入方式:1 链首插入,2 链尾插入,3 中间插入\n");
        scanf("%d",&n);
        if(n==1)
        {
            p=(CHEN *hong)malloc(FEI *hong);
            printf("请输入学生资料\n");
            scanf("%s,%s,%d,%f",&p->name,&p->sex,&p->age,&p->score");
            p->next=head;
            head=p;
        }
        if(n==2)
        {
            //p=q=head;
            if(p==NULL)
            {
                p=(CHEN *hong)malloc(FEI *hong);
                printf("请输入学生资料\n");
                scanf("%s,%s,%d,%f",&p->name,&p->sex,&p->age,&p->score");
                p->next=head;
                head=p;
            }
            else
            {
                while(p!=NULL)
                {
                    q=p;
                    p=p->next;
                }
                p=(CHEN *hong)malloc(FEI *hong);
                printf("请输入学生资料\n");
                scanf("%s,%s,%d,%f",&p->name,&p->sex,&p->age,&p->score");
                p->next=NULL;
                q->next=p;
            }
        }
        retrun head;
    }
   
搜索更多相关主题的帖子: include insert update count 
2011-04-03 02:33
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:20 
hong *head=NULL,*p=NULL;
我不明白为什么总有人用结构体变量来定义指针?难道是新的C++标准?

   唯实惟新 至诚致志
2011-04-03 09:09
卡其
Rank: 2
等 级:论坛游民
帖 子:96
专家分:36
注 册:2010-8-30
得分:0 
写错啦。
2011-04-03 16:28
卡其
Rank: 2
等 级:论坛游民
帖 子:96
专家分:36
注 册:2010-8-30
得分:0 
写错啦。
2011-04-03 16:28



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




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

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