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指针已经正确声明和初始化
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报