用C语言建造一个能输入和改变学生成绩姓名和学号的程序
时间: 2024-09-30 12:08:28 浏览: 32
在C语言中,我们可以创建一个简单的命令行界面程序来输入和修改学生的成绩信息。下面是一个基础的示例,它会存储学生的信息在一个结构体数组里:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生结构体
typedef struct {
char name[50];
int id;
float score;
} Student;
// 功能函数声明
void inputStudent(Student* arr, int size);
void changeScore(Student* arr, int id, float newScore);
int main() {
const int MAX_STUDENTS = 10; // 最大学生数
Student students[MAX_STUDENTS]; // 学生数组
// 输入学生信息
printf("请输入学生信息:\n");
inputStudent(students, MAX_STUDENTS);
// 主循环,询问用户是否要修改成绩
while (true) {
int choice;
printf("\n1. 查看学生信息\n2. 修改成绩\n3. 退出\n请选择操作:\n");
scanf("%d", &choice);
switch (choice) {
case 1: // 查看所有学生信息
for (int i = 0; i < MAX_STUDENTS; i++) {
printf("ID: %d, 姓名: %s, 成绩: %.2f\n", students[i].id, students[i].name, students[i].score);
}
break;
case 2: // 修改成绩
int studentId;
float newScore;
printf("请输入要修改的学生ID和新分数:\n");
scanf("%d%f", &studentId, &newScore);
changeScore(&students, studentId, newScore);
break;
case 3: // 退出
exit(0);
default:
printf("无效选择,请重试。\n");
}
}
return 0;
}
// 函数实现
void inputStudent(Student* arr, int size) {
for (int i = 0; i < size; i++) {
printf("请输入学生%02d的姓名、学号和成绩:\n", i + 1);
scanf("%s%d%f", arr[i].name, &arr[i].id, &arr[i].score);
}
}
void changeScore(Student* arr, int id, float newScore) {
for (int i = 0; i < MAX_STUDENTS; i++) {
if (arr[i].id == id) {
arr[i].score = newScore;
printf("成绩已成功更新为%.2f\n", arr[i].score);
break;
}
}
}
```
阅读全文