成为最强的理塘丁真 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日