| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3550 人关注过本帖
标题:帮忙看看吧,实在是想烦了,一点点小错误而已了
取消只看楼主 加入收藏
梁朝斌
Rank: 4
等 级:业余侠客
帖 子:192
专家分:288
注 册:2012-10-21
结帖率:100%
收藏
已结贴  问题点数:16 回复次数:1 
帮忙看看吧,实在是想烦了,一点点小错误而已了
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>

typedef struct student
{
    char name[10];
    int number;
    int chinese;
    int math;
    int english;
};

typedef struct node
{
    int data;
    struct student a;
    struct node *next;
}node,*linklist;

void createlist(linklist *l)/*创建单链表*/
{
    *l=(linklist)malloc(sizeof(node));/*申请内存*/
    (*l)->next=NULL;/*建立空的单链表*/
    (*l)->data=0;/*初始化数据区*/
}
void charu(linklist *l,int n)/*插入学生信息*/
{
    int i;
    linklist p,s;
    if(n<0||n>(*l)->data+1)
    {
        printf("超出范围,插入位置不合法\n");
        return ;
    }
    if((s=(linklist)malloc(sizeof(node)))==NULL)
    {
        printf("未分配到内存!");
        return ;
    }
   
    p=(*l);
    for(i=1;i<n;i++)
        printf("请输入学生的姓名:");
        scanf("%s",&(s->a.name));
        printf("请输入学生的学号:");
        scanf("%d",&(s->a.number));
        printf("请输入学生的语文成绩:");
        scanf("%d",&(s->a.chinese));
        printf("请输入学生的数学成绩:");
        scanf("%d",&(s->a.math));
        printf("请输入学生的英语成绩:");
        scanf("%d",&(s->a.english));
        p=p->next;
        s->next=p->next;
        p->next=s;
        (*l)->data++;
}
void delet(linklist l)                /*学生信息的删除*/
{
    linklist p,q;
    int n,i;
    p=l;
    printf("输入删除位置:");
    scanf("%d",&n);
    if(n<0||n>l->data)
    {
        printf("删除结点的位置不合法!\n");
        return ;
    }
    for(i=1;i<n;i++)
        p=p->next;
        q=p->next;
        p->next=q->next;     /*修改指针,删除节点q*/
        free(q);            /*释放被删除的结点所占的内存空间*/
    l->data--;
}
void display(linklist l)
{
    linklist p;
    p=l->next;
    while(p!=NULL)
    {
   
        printf("学生的姓名是: %s\n",p->a.name);
        printf("学生的学号是: %d\n",p->a.number);
        printf("学的语文成绩: %d\n",p->a.chinese);
        printf("学的英语成绩: %d\n",p->a.english);
        printf("学的数学成绩: %d\n",p->a.math);
        p=p->next;
        
    }
}

void chaxun(linklist l)
{
    int n,flag=1;
    linklist p;
    p=l->next;
    printf("输入要查询的学号:\n");
    scanf("%d",&n);
    while(p!=NULL)
    {
        if(n==p->a.number)
        {
            printf("学生的姓名是:%s\n",p->a.name);
            printf("学生的学号是:%d\n",p->a.number);
            printf("学生的语文成绩是:%d\n",p->a.chinese);
            printf("学生的数学成绩是:%d\n",p->a.math);
            printf("学生的英语成绩是:%d\n",p->a.english);
            flag=0;
            break;
        }
        p=p->next;
    }
    if(flag)
        printf("查询的学生不存在\n");
    printf("是否重新修改学生信息查询?,输入1修改,输入0不修改:\n");
        scanf("%d",&flag);
    if(flag)
    {
        printf("输入学生的姓名:");
        scanf("%s",&(p->a.name));
        printf("输入学生的学号:");
        scanf("%d",&(p->a.number));
        printf("输入学的语文成绩:");
        scanf("%d",&(p->a.chinese));
        printf("输入学的英语成绩:");
        scanf("%d",&(p->a.english));
        printf("输入学的数学成绩:");
        scanf("%d",&(p->a.math));
    }


void menu()
{
    printf("                 单链表基本操作实验                   \n");
    printf("******************************************************\n");
    printf("请选择命令序号(0-7):                                 *\n");
    printf("*1插入学生信息;                                      *\n");
    printf("*2删除学生信息;                                      *\n");
    printf("*3查询学生信息;                                      *\n");
    printf("*4输出学生信息;                                      *\n");
    printf("*0程序结束.                                          *\n");
    printf("******************************************************\n");
}
int main(void)
{
    int i,n,flag;
    linklist l;
    createlist(&l);
    menu();
    for(i=0;i<9;i++)
    {
        printf("输入第%d个学生的信息\n",i+1);
        charu(&l,1);
    }
    printf("输入要执行的操作:\n");
    scanf("%d",&flag);
    while(flag)
    {
        switch(flag)
        {
        case 1:
            printf("输入要插入的位置:\n");
            scanf("%d",&n);
            charu(&l,n);
            break;
        case 2:
            delet(l);
            break;
        case 3:
            display(l);
            break;
        case 4:
            chaxun(l);
            break;
        default:
            printf("输入无效:\n");
            break;
        }
            menu();
            printf("输入要执行的操作:\n");
            scanf("%d",&flag);
    }
    free(l);
    return 0;
}



Compiling...
链表操作实验报告.cpp
E:\面向对象程序设计\计算机操作系统\1链表操作实验报告\链表操作实验报告.cpp(12) : warning C4091: 'typedef ' : ignored on left of 'struct student' when no variable is declared
E:\面向对象程序设计\计算机操作系统\1链表操作实验报告\链表操作实验报告.cpp(136) : error C2601: 'menu' : local function definitions are illegal
E:\面向对象程序设计\计算机操作系统\1链表操作实验报告\链表操作实验报告.cpp(148) : error C2601: 'main' : local function definitions are illegal
E:\面向对象程序设计\计算机操作系统\1链表操作实验报告\链表操作实验报告.cpp(189) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.

链表操作实验报告.exe - 1 error(s), 0 warning(s)


程序检查了很多遍,没有错误啊,怎么会这样提示
搜索更多相关主题的帖子: 信息 number include english 
2013-06-04 21:27
梁朝斌
Rank: 4
等 级:业余侠客
帖 子:192
专家分:288
注 册:2012-10-21
收藏
得分:0 
我很急,几天了,哪位帮帮忙吧

菜鸟也疯狂
2013-06-04 21:55
快速回复:帮忙看看吧,实在是想烦了,一点点小错误而已了
数据加载中...
 
   



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

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