成为最强的理塘丁真 2023-12-20 00:08 采纳率: 45.5%
浏览 3
已结题

为什么这个替换学生信息函数实现不了

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指针已经正确声明和初始化

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月28日
  • 已采纳回答 12月20日
  • 创建了问题 12月20日

悬赏问题

  • ¥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安全浏览器?