用C语言写了个简单的通讯录管理系统。。。。。。可老是会这样退出。。。。
错误:
Process exited after 13.64 seconds with return value 3221225477
源代码:
https://github.com/mhqlyh/1
C程序异常退出。。。。。。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qzjhjxj 2021-07-06 22:55关注
修改如下,供参考:
#include <stdio.h> #include "function.h" #include <string.h> #include <math.h> #include <stdlib.h> #define MAX_NUM 500 #define MAX_LEN 10 //function.h //#define MAX_NUM 500 //#define MAX_LEN 10 struct person { int number; /*用户号码,姓名,地址,性别,关系*/ char name[MAX_LEN]; char address[64]; int sex; char relationship[64]; }; struct addressbooks { struct person personarray[MAX_NUM]; int nowsize; /*当前联系人的个数*/ }; int cleanperson(struct addressbooks *p); void modifyperson(struct addressbooks *p); void deleteperson(struct addressbooks *p); void showperson(struct addressbooks *p); void addperson(struct addressbooks *p); void searchperson(struct addressbooks *p); int Isexit(struct addressbooks *p, char *name_i); void mainfunction(); //main.c //#include <stdio.h> //#include "function.h" //#include <string.h> //#include <math.h> //#include <stdlib.h> //#define MAX_NUM 500 //#define MAX_LEN 10 int main() { struct addressbooks book1; book1.nowsize=0; /*初始化*/ int select = 0; while (1) { mainfunction(); printf("请输入你的选择:\n"); scanf("%d", &select); switch (select) { case 1: searchperson(&book1); break; case 2: showperson(&book1); break; case 3: addperson(&book1); break; case 4: deleteperson(&book1); break; case 5: modifyperson(&book1); break; case 6: cleanperson(&book1); break; case 0: printf("欢迎下次使用!\n"); system("pause"); exit(0); break; default: break; } } return 0; } //function.c //#include"function.h" void mainfunction() { printf("*******************\n"); printf("***1、查找联系人***\n"); printf("***2、显示联系人***\n"); printf("***3、添加联系人***\n"); printf("***4、删除联系人***\n"); printf("***5、修改联系人***\n"); printf("***6、清空联系人***\n"); printf("***0、退出通讯录***\n"); printf("*******************\n"); } int Isexit(struct addressbooks *p, char *name_i) { /*判断联系人是否存在*/ int i, t = -1; for ( i = 0; i < p->nowsize; i++) { if (strcmp(p->personarray[i].name,name_i)==0){ t = i; /*把联系人的下标储存,返回*/ break; } } return t; } void searchperson(struct addressbooks *p) { /*查找功能*/ char name_search[MAX_LEN]; printf("请输入要查询联系人的姓名:\n"); scanf("%s", name_search); int t = Isexit(p, name_search); if (t >= 0) { printf("姓名:%s\t", p->personarray[t].name); printf("号码:%lld\t", p->personarray[t].number); printf("性别:%s\t", (p->personarray[t].sex == 1 ? "男" : "女")); printf("地址:%s\t", p->personarray[t].address); printf("关系:%s\n", p->personarray[t].relationship); } else { printf("未查找到!\n"); } } void addperson(struct addressbooks *p) { /*添加功能*/ if (p->nowsize == MAX_NUM) { printf("通讯录人数已满,无法添加!"); } else { char name_scan[MAX_LEN]; printf("请输入新添联系人的姓名:\n"); scanf("%s",name_scan); strcpy(p->personarray[p->nowsize].name,name_scan); int number_scan; printf("请输入新添联系人的号码:\n"); scanf("%d", &number_scan); p->personarray[p->nowsize].number = number_scan; int sex_scan; printf("请输入新添联系人的性别,0——女,1——男:\n"); while (1) { scanf("%d", &sex_scan); if (sex_scan == 0 || sex_scan == 1) { p->personarray[p->nowsize].sex = sex_scan; break; } else { printf("输入错误,请重新输入!"); } } char address_scan[64]; printf("请输入新添联系人的地址:\n"); scanf("%s", address_scan); strcpy(p->personarray[p->nowsize].address,address_scan); char relationship_scan[64]; printf("请输入新添联系人的关系:\n"); scanf("%s", relationship_scan); strcpy(p->personarray[p->nowsize].relationship,relationship_scan); p->nowsize++; /*通讯录当前人数+1*/ printf("添加成功!\n"); } } void showperson(struct addressbooks *p) { /*显示功能*/ if (p->nowsize == 0) { printf("当前通讯录为空!\n"); } else { for (int i = 0; i < p->nowsize; i++) { printf("姓名:%s\t", p->personarray[i].name); printf("号码:%d\t", p->personarray[i].number); printf("性别:%s\t", (p->personarray[i].sex == 1 ? "男" : "女")); printf("地址:%s\t", p->personarray[i].address); printf("关系:%s\n", p->personarray[i].relationship); } printf("\n"); } } void deleteperson(struct addressbooks *p) { /*删除功能*/ printf("请输入要删除的联系人:\n"); char name_scan[MAX_LEN]; scanf("%s", name_scan); int t = Isexit(p, name_scan); if (t >= 0) { for (int i = t; i < p->nowsize-1; i++) { p->personarray[i] = p->personarray[i + 1]; } p->nowsize--; printf("删除成功!\n"); } else { printf("未找到联系人!\n"); } } void modifyperson(struct addressbooks *p) { /*修改功能*/ printf("请输入你要修改的联系人的姓名:\n"); char name_scan[MAX_LEN]; scanf("%s", name_scan); int t = Isexit(p, name_scan); if (t >= 0) { printf("请输入修改后的姓名:\n"); scanf("%s", name_scan); strcpy(p->personarray[t].name, name_scan); printf("请输入号码:\n"); int number_scan; scanf("%d", &number_scan); p->personarray[t].number = number_scan; printf("请输入性别,0——女,1——男:\n"); int sex_scan; while (1) { scanf("%d", &sex_scan); if (sex_scan == 1 || sex_scan == 0) { p->personarray[t].sex = sex_scan; break; } else { printf("输入错误,请重新输入!"); } } printf("请输入地址:\n"); char address_scan[64]; scanf("%s", &address_scan); strcpy(p->personarray[t].address, address_scan); printf("请输入关系:\n"); char relationship_scan[64]; scanf("%s", relationship_scan); strcpy(p->personarray[t].relationship,relationship_scan); printf("修改成功!\n"); } else { printf("没有该联系人!\n"); } } int cleanperson(struct addressbooks *p) { printf("清空后不可恢复,是否继续? 0——否,1——是"); int select = 0; while (1) { scanf("%d", &select); if (select) { p->nowsize = 0; printf("通讯录已清空!\n"); break; } else { printf("暂时不清理\n"); break; } } return 0; }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 单纯型python实现编译报错
- ¥15 c++2013读写oracle
- ¥15 c++ gmssl sm2验签demo
- ¥15 关于模的完全剩余系(关键词-数学方法)
- ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
- ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音