void replace_student() { int choice = 0; // 记录用户的选择,0表示通过姓名查询,1表示通过学号查询 int continue_search = 1; // 控制循环的变量,1表示继续查询,0表示退出查询 while (continue_search) { printf("请选择查询方式:\n"); printf("输入0. 通过学生姓名查询\n"); printf("输入1. 通过学生学号查询\n"); scanf("%d", &choice); switch (choice) { case 0: { char newname[50]; int newnum[50]; int newphone[50]; printf("请输入要查找的学生姓名:"); scanf("%s", newname); struct Student *current = head; while (current != NULL) { if (strcmp(current->name, newname) == 0) { printf("请输入新的学生学号:"); scanf("%d", newnum); printf("请输入新的学生电话:"); scanf("%d", &newphone); current->num = newnum; current->phone = newphone; printf("学生信息已成功替换!\n"); return; } else { current = current->next; } } printf("未找到该学生信息!\n"); } break; case 1: { char newname[50]; int newnum[50]; int newphone[50]; printf("请输入要查找的学生学号:"); scanf("%d", &newnum); struct Student *current = head; while (current != NULL) { if (current->num == newnum) { printf("请输入新的学生姓名:"); scanf("%s", newname); printf("请输入新的学生电话:"); scanf("%d", &newphone); strcpy(current->name,newname); current->phone = newphone; printf("学生信息已成功替换!\n"); return; return; } else { current = current->next; } } printf("未找到该学生信息!\n"); } break; default: printf("输入有误,请重新选择!\n"); break; } // 询问用户是否继续查询,输入0退出,输入1继续 printf("是否继续查询学生信息?输入0退出,输入1继续:\n"); scanf("%d", &continue_search); }}
1条回答 默认 最新
- 七待 The 2023-12-20 08:54关注
newnum和newphone被声明为数组(int newnum[50] 和 int newphone[50]),但它们应该是单个整数值。应该将它们声明为普通的 int 变量
void replace_student() { int choice = 0; int continue_search = 1; while (continue_search) { printf("请选择查询方式:\n"); printf("输入0. 通过学生姓名查询\n"); printf("输入1. 通过学生学号查询\n"); scanf("%d", &choice); switch (choice) { case 0: { char newname[50]; int newnum; int newphone; printf("请输入要查找的学生姓名:"); scanf("%s", newname); struct Student *current = head; while (current != NULL) { if (strcmp(current->name, newname) == 0) { printf("请输入新的学生学号:"); scanf("%d", &newnum); printf("请输入新的学生电话:"); scanf("%d", &newphone); current->num = newnum; current->phone = newphone; printf("学生信息已成功替换!\n"); return; } else { current = current->next; } } printf("未找到该学生信息!\n"); break; } case 1: { char newname[50]; int newnum; int newphone; printf("请输入要查找的学生学号:"); scanf("%d", &newnum); struct Student *current = head; while (current != NULL) { if (current->num == newnum) { printf("请输入新的学生姓名:"); scanf("%s", newname); printf("请输入新的学生电话:"); scanf("%d", &newphone); strcpy(current->name, newname); current->phone = newphone; printf("学生信息已成功替换!\n"); return; } else { current = current->next; } } printf("未找到该学生信息!\n"); break; } default: printf("输入有误,请重新选择!\n"); break; } printf("是否继续查询学生信息?输入0退出,输入1继续:\n"); scanf("%d", &continue_search); } }
请确保你的Student结构体定义和head指针已经正确声明和初始化
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 wordpress如何限制ip访问频率
- ¥15 自研小游戏,需要后台服务器存储用户数据关卡配置等数据
- ¥15 请求解答odoo17外发加工某工序的实操方法
- ¥20 IDEA ssm项目 跳转页面报错500
- ¥20 系统直接进入应急模式了,请教一下,人要裂开了
- ¥15 页面初次加载时,JS调用对象可以调用成功,但是一旦跳转到另一个页面,再跳转回来后这个对象就显示undefind了,调用也调用不了了,什么原因?
- ¥15 来个厉害的程序开发的,安排点活给你做
- ¥15 rexroth indramotion MTX micro系统轴耦合编程
- ¥100 springboot2.7.x 整合 sharding 的问题
- ¥15 如何通过命令行操作统信360安全浏览器?