C语言数组实现语文、数学、英语三科成绩录入、查询、修改功能
时间: 2023-07-10 21:03:15 浏览: 82
好的,以下是一个简单的实现:
```c
#include <stdio.h>
#define MAX_STUDENTS 100 // 最大学生数
#define MAX_SUBJECTS 3 // 最大科目数
int scores[MAX_STUDENTS][MAX_SUBJECTS]; // 存储成绩的数组
int num_students = 0; // 学生数
void add_student() {
if (num_students == MAX_STUDENTS) {
printf("已达到最大学生数,无法添加。\n");
return;
}
printf("请输入学生的语文、数学、英语成绩:\n");
scanf("%d %d %d", &scores[num_students][0], &scores[num_students][1], &scores[num_students][2]);
num_students++;
printf("添加成功!\n");
}
void query_score() {
int id;
printf("请输入要查询成绩的学生编号(从1开始):\n");
scanf("%d", &id);
if (id < 1 || id > num_students) {
printf("学生编号不合法!\n");
return;
}
printf("学生%d的成绩为:语文 %d,数学 %d,英语 %d\n", id, scores[id - 1][0], scores[id - 1][1], scores[id - 1][2]);
}
void modify_score() {
int id, subject, score;
printf("请输入要修改成绩的学生编号(从1开始)和科目编号(1代表语文,2代表数学,3代表英语):\n");
scanf("%d %d", &id, &subject);
if (id < 1 || id > num_students || subject < 1 || subject > MAX_SUBJECTS) {
printf("学生编号或科目编号不合法!\n");
return;
}
printf("请输入新的成绩:\n");
scanf("%d", &score);
scores[id - 1][subject - 1] = score;
printf("修改成功!\n");
}
int main() {
int choice;
while (1) {
printf("请选择要进行的操作:\n");
printf("1、添加学生的成绩\n");
printf("2、查询学生的成绩\n");
printf("3、修改学生的成绩\n");
printf("4、退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
query_score();
break;
case 3:
modify_score();
break;
case 4:
return 0;
default:
printf("输入不合法,请重新输入!\n");
}
}
}
```
程序中使用了一个二维数组 `scores` 来存储成绩,其中第一维表示学生编号,第二维表示科目编号。程序提供了三个操作:添加学生的成绩、查询学生的成绩、修改学生的成绩。用户可以根据提示输入相应的信息,程序会对输入进行检查并给出相应的反馈。