您希望输入学生的姓名或者学号,然后修改他们的成绩
时间: 2023-12-15 09:04:13 浏览: 65
好的,那么这个需求可以通过以下步骤来实现:
1. 首先定义一个结构体类型,用于保存每个学生的信息,包括姓名、学号、成绩等。例如:
```
typedef struct {
char name[20];
int id;
float grade;
} Student;
```
2. 然后定义一个数组,用于保存所有学生的信息。例如:
```
Student students[100];
```
这里假设最多有100个学生。
3. 接下来,编写一个函数,用于根据输入的学生姓名或学号,查找到对应的学生信息。例如:
```
int findStudent(char* nameOrId) {
int i;
for (i = 0; i < 100; i++) {
if ((strcmp(students[i].name, nameOrId) == 0) || (students[i].id == atoi(nameOrId))) {
return i;
}
}
return -1;
}
```
这个函数会遍历所有学生信息,查找到与输入的姓名或学号匹配的学生,并返回该学生在数组中的下标。如果找不到,则返回-1。
4. 编写一个函数,用于修改指定学生的成绩。例如:
```
void modifyGrade(char* nameOrId, float newGrade) {
int index = findStudent(nameOrId);
if (index == -1) {
printf("未找到指定学生!\n");
} else {
students[index].grade = newGrade;
printf("修改成功!\n");
}
}
```
这个函数会先调用findStudent函数查找到指定学生的信息,然后修改该学生的成绩。如果找不到指定学生,则输出提示信息。
5. 最后,在主函数中读入所有学生信息,并根据用户输入执行相应操作。例如:
```
int main() {
// 读入所有学生信息
// ...
// 循环处理用户输入的操作
while (1) {
printf("请输入学生姓名或学号:");
char nameOrId[20];
float newGrade;
scanf("%s", nameOrId);
if (strcmp(nameOrId, "exit") == 0) {
break;
}
printf("请输入新的成绩:");
scanf("%f", &newGrade);
modifyGrade(nameOrId, newGrade);
}
return 0;
}
```
这个主函数会循环读取用户输入的学生姓名或学号,并调用modifyGrade函数修改对应学生的成绩。如果用户输入"exit"则退出循环。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)