修改代码错误int main() { int i,choice,score;// 交互式查询 char query[20]; int num_students = read_student_info(students); printf("学生成绩表:\n"); display_all_students(students, num_students); while (1) { printf("\t\t\t\t\t-------- 学生成绩管理系统-------\n\n\n\n"); //菜单 printf("\t\t\t\t\t1. 增加学生记录\n\n"); printf("\t\t\t\t\t2. 查询学生记录\n\n"); printf("\t\t\t\t\t3. 查询学生记录\n\n"); printf("\t\t\t\t\t4. 按平均成绩排序\n\n"); printf("\t\t\t\t\t4. 退出\n\n\n"); printf("请选择(0-4):"); scanf("%d", &i); if (i == 4) { break; } else switch (i) { case 1:addStudent();break; case 2:printf("请输入排序类型:\n"); printf("1. 按学号递增排序\n"); printf("2. 按总分递减查询\n"); scanf("%d", &choice); switch (choice){ case 1:sort_by_num();break; case 2:sort_by_score();break; default: printf("无效的输入!\n"); } case 3: printf("请输入查询类型:\n"); printf("1. 按学号查询\n"); printf("2. 按姓名查询\n"); printf("3. 按总分查询\n"); scanf("%d", &choice); switch (choice){ printf("请输入学号:"); scanf("%s", query); search_by_num(query);break; case 2: printf("请输入姓名:"); scanf("%s", query); search_by_name(query); break; case 3: printf("请输入分数:"); scanf("%d", &score); search_by_score(score);break; default: printf("无效的输入!\n"); } } } return 0; }
时间: 2023-07-05 17:22:31 浏览: 88
在您提供的代码中,有几个错误需要注意:
1. 在 `int num_students = read_student_info(students);` 语句中,变量 `students` 没有被声明或定义。您需要在此之前声明一个 `student` 类型的数组,并将其传递给 `read_student_info` 函数。
2. 在 `case 3:` 中的 `switch` 语句中,`case` 语句缺少了一个左括号。
3. 在 `case 3:` 中的 `switch` 语句中,`case 1:` 和 `case 2:` 中的代码缺少了一个 `break` 语句。这可能会导致程序在执行完一个 `case` 后继续执行下一个 `case`。
4. 在 `case 3:` 中的 `switch` 语句中,`case 1:` 和 `case 2:` 的代码块中缺少了一个右括号。
5. 在 `case 3:` 中的 `switch` 语句中,`case 3:` 中的代码块中的函数名 `search_by_score` 没有被定义或声明。您需要确保在使用该函数之前已经声明或定义了它。
下面是修改过的代码:
```
int main() {
int i, choice, score; // 交互式查询
char query[20];
student students[MAX_STUDENTS]; // 声明一个 student 类型的数组
int num_students = read_student_info(students);
printf("学生成绩表:\n");
display_all_students(students, num_students);
while (1) {
printf("\t\t\t\t\t-------- 学生成绩管理系统-------\n\n\n\n"); //菜单
printf("\t\t\t\t\t1. 增加学生记录\n\n");
printf("\t\t\t\t\t2. 查询学生记录\n\n");
printf("\t\t\t\t\t3. 查询学生成绩\n\n");
printf("\t\t\t\t\t4. 按平均成绩排序\n\n");
printf("\t\t\t\t\t5. 退出\n\n\n");
printf("请选择(0-4):");
scanf("%d", &i);
if (i == 5) {
break;
} else {
switch (i) {
case 1:
addStudent();
break;
case 2:
printf("请输入排序类型:\n");
printf("1. 按学号递增排序\n");
printf("2. 按总分递减查询\n");
scanf("%d", &choice);
switch (choice){
case 1:
sort_by_num();
break;
case 2:
sort_by_score();
break;
default:
printf("无效的输入!\n");
break; // 添加 break 语句
}
break;
case 3:
printf("请输入查询类型:\n");
printf("1. 按学号查询\n");
printf("2. 按姓名查询\n");
printf("3. 按总分查询\n");
scanf("%d", &choice);
switch (choice){
case 1:
printf("请输入学号:");
scanf("%s", query);
search_by_num(query);
break;
case 2:
printf("请输入姓名:");
scanf("%s", query);
search_by_name(query);
break;
case 3:
printf("请输入分数:");
scanf("%d", &score);
search_by_score(students, num_students, score); // 添加参数
break;
default:
printf("无效的输入!\n");
break; // 添加 break 语句
}
break;
default:
printf("无效的输入!\n");
break; // 添加 break 语句
}
}
}
return 0;
}
```
阅读全文