社区讨论

这是什么错误?

灌水区参与者 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 条回复,欢迎继续交流。

正在加载回复...