c语言 错误 无效的控制谓词,帮忙看看吧,实在是想烦了,一点点小错误而已了...

已结贴√

问题点数:16 回复次数:5

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

帮忙看看吧,实在是想烦了,一点点小错误而已了

#include

#include

#include

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

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

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)

程序检查了很多遍,没有错误啊,怎么会这样提示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值