C语言学生成绩管理系统输入学号不能重复怎么写
时间: 2024-10-12 17:11:18 浏览: 37
C语言学生成绩管理系统课程设计
5星 · 资源好评率100%
在C语言中编写一个成绩管理系统,并确保输入的学号不重复,通常需要结合数组、循环以及用户验证机制。下面是一个简单的示例,假设我们有一个固定大小的成绩数组用于存储学生的成绩:
```c
#include <stdio.h>
#define MAX_STUDENTS 100
// 假设score[]数组用于存储成绩,student_id[]记录学号
int score[MAX_STUDENTS];
int student_id[MAX_STUDENTS] = {0}; // 初始化所有学号为0,表示未分配
int num_students = 0; // 记录学生总数
void input_student_id() {
int id;
printf("请输入学号 (已存在则提示): ");
scanf("%d", &id);
// 检查学号是否重复
while (num_students > 0 && student_id[num_students - 1] == id) {
printf("学号已存在,请重新输入: ");
scanf("%d", &id);
}
if (num_students >= MAX_STUDENTS) {
printf("学号输入错误,系统满员。\n");
} else {
student_id[num_students++] = id; // 如果输入有效,则添加到数组
printf("学号 %d 已成功录入。\n", id);
}
}
int main() {
while (1) {
input_student_id();
// 这里可以添加其他功能,如输入成绩等
}
return 0;
}
```
在这个程序中,`input_student_id`函数会不断请求用户输入学号,如果学号已经存在于数组中,就会提示用户重新输入。当达到最大容量(MAX_STUDENTS)时,会显示系统已满。
阅读全文