社区讨论
这是什么错误?
灌水区参与者 6已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @lo95hs73
- 此快照首次捕获于
- 2023/10/28 05:54 2 年前
- 此快照最后确认于
- 2023/10/28 05:54 2 年前

实践作业,求助这是什么错误?为什么会报错呢?
代码如下:
CPP#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student
{char name[20];
char telephone[20];
char mailbox[30];
char adress[20];};
void mhl1(student*stu,char*name1);
void mhl2(student*stu,char*name1);
void mhl3(student*stu,char*name1);
int main()
{
int n=0;
struct student stu[100];
char old[20];
printf("-----班级通讯录-----\n");
printf("1.添加\n");
printf("2.修改\n");
printf("3.查询\n");
printf("4.删除\n");
printf("5.查看\n");
int a;
printf("请选择操作:\n");
scanf("%d",&a);
switch(a)
{case 1:
printf("请输入姓名:");
gets(stu[n].name);
printf("请输入电话:");
gets(stu[n].telephone);
printf("请输入邮箱:");
gets(stu[n].mailbox);
printf("请输入地址:");
gets(stu[n].adress);
n++;
printf("添加成功\n");
break;
case 2:
printf("请输入要修改的姓名:");
gets(old);
mhl1(stu,old);
break;
case 3:
printf("请输入要查询同学的姓名:");
gets(old);
mhl2(stu,old);break;
case 4:
printf("请输入要删除同学的姓名:");
gets(old);
mhl3(stu,old);break;
case 5:
printf("姓名 电话 邮箱 地址 \n");
for(int i=0;i<n;i++)
{printf("%s",stu[i].name);
printf("%s",stu[i].telephone);
printf("%s",stu[i].mailbox);
printf("%s",stu[i].adress);
}break;
return 0;
}
void mhl1(student*stu,char*name1)
{int m=0,f;
for(f=0;f<n;f++)
{if(strcmp(name1,stu[f].name)==0)
{m=1;break;}
}
if(m==1)
{printf("请输入修改后姓名:");
gets(stu[f].name);
printf("请输入修改后电话:");
gets(stu[f]. telephone);
printf("请输入修改后的邮箱:");
gets(stu[f].mailbox);
printf("请输入修改后的地址:");
gets(stu[f].adress);}
else printf("没有找到要修改的同学\n");}
void mhl2(student*stu,char*name1)
{int w=0,f;
for(int f=0;f<n;f++)
{if(strcmp(name1,stu[f].name)==0)
{w=1;break;}
}
if(w==1)
{printf("查询的同学姓名:%s\n",stu[f].name);
printf("电话:%s\n",stu[f].telephone);
printf("邮箱:%s\n",stu[f].mailbox);
printf("地址:%s\n",stu[f].adress);}
else printf("没有找到要查询的同学\n");}
void mhl3(student*stu,char*name1)
{int p=0,f;
for(int f=0;f<n;f++)
{if(strcmp(name1,stu[f].name)==0)
{p=1;break;}
}if(p==1)
{for(int i=f;i<n-1;i++)
{strcpy(stu[i].name,stu[i+1].name);
strcpy(stu[i].telephone,stu[i+1].telephone);
strcpy(stu[i].mailbox,stu[i+1].mailbox);
strcpy(stu[i].adress,stu[i+1].adress);
}n--;
printf("删除成功\n");
}else printf("没找到要删除的同学\n");}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...