这个是第一个项目就是新建联系人,但是输入一之后就没有然后了。所以想问一问为什么。
3条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在提供的C语言代码片段中存在一些错误,导致程序可能无法按预期执行。以下是修复后的代码,并对其中的问题进行了注释:
#include <stdio.h> #include <string.h> // 在结构体定义前添加类型名称 typedef struct { char name[90]; char address[90]; char telephone[20]; char dianhua[20]; char leibie[90]; char email[90]; char qq[90]; } Contact; int main() { int n; printf("个人通讯录管理系统\n"); printf("1.新建联系人\n"); printf("2.修改联系人\n"); printf("3.查找联系人\n"); printf("4.删除联系人\n"); printf("5.显示联系人\n"); printf("6.保存并退出\n"); printf("请输入您要操作的项目的序号: "); scanf("%d", &n); // 将变量地址传递给scanf switch(n) { // 使用switch语句简化代码逻辑 case 1: // 新建联系人 printf("姓名:"); scanf("%s", a.name); printf("单位:"); scanf("%s", a.address); printf("固定电话:"); scanf("%s", a.telephone); scanf(" %s", a.dianhua); // 前面的空格可以消除上一行输入的换行符 printf("分类:"); scanf("%s", a.leibie); printf("EMAIL:"); scanf("%s", a.email); break; case 2: // 修改联系人 // 在这里编写修改联系人的代码 break; case 3: // 查找联系人 // 在这里编写查找联系人的代码 break; case 4: // 删除联系人 // 在这里编写删除联系人的代码 break; case 5: // 显示联系人 // 在这里编写显示联系人的代码 break; case 6: // 保存并退出 // 在这里编写保存数据到文件并退出程序的代码 break; default: printf("无效的操作序号,请重新输入。\n"); break; } return 0; }
这个版本的代码修复了以下问题:
- 结构体类型名称缺失,已添加
typedef struct
定义了一个名为Contact
的新类型。 - 将
main()
函数中的int n;
声明移至main()
函数开头。 - 将
scanf("%d",n)
改为scanf("%d", &n)
,因为需要将n
的地址传递给scanf
。 - 使用
switch
语句替换多个嵌套的if-else
语句,使代码更简洁易读。 - 移除了多余的
print("06", a, email)
,这可能是拼写错误或未完成的部分,根据需求进行修复或删除。
现在,当用户选择新建联系人(输入数字1)时,程序应该会提示用户输入联系人的信息。接下来,你需要根据实际需求实现其他功能,例如修改、查找、删除和显示联系人以及保存数据等。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录- 结构体类型名称缺失,已添加
悬赏问题
- ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
- ¥15 android 集成sentry上报时报错。
- ¥50 win10链接MySQL
- ¥35 跳过我的世界插件ip验证
- ¥15 抖音看过的视频,缓存在哪个文件
- ¥15 自定义损失函数报输入参数的数目不足
- ¥15 如果我想学习C大家有是的的资料吗
- ¥15 根据文件名称对文件进行排序
- ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
- ¥15 有人会用py或者r画这种图吗