C语言编写学生学籍统计
时间: 2024-10-09 18:01:37 浏览: 23
C语言学生学籍管理系统报告
在C语言中编写学生学籍统计程序通常会涉及到结构体(struct)来表示学生信息,如学号、姓名和成绩等,并利用数组或链表来存储多个学生的数据。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生结构体
typedef struct {
int student_id; // 学生学号
char name[50]; // 学生姓名
float score; // 学生成绩
} Student;
// 插入新学生到学籍记录
void addStudent(Student students[], int *size, int id, char *name, float score) {
if (*size >= MAX_SIZE) {
printf("学籍已满,无法添加更多学生。\n");
return;
}
students[*size].student_id = id;
strcpy(students[*size].name, name);
students[*size].score = score;
(*size)++;
}
// 统计平均分
float calculateAverage(Student students[], int size) {
float total = 0;
for (int i = 0; i < size; i++) {
total += students[i].score;
}
return total / size;
}
int main() {
const int MAX_SIZE = 100; // 最大学生数
Student students[MAX_SIZE] = {0}; // 初始化学生数组
int size = 0;
// 添加学生并获取输入
while (true) {
int id, score;
char name[50];
printf("请输入学生信息(学号、姓名、分数,输入q结束):\n");
scanf("%d %s %f", &id, name, &score);
if (strcmp(name, "q") == 0) break; // 输入q退出循环
addStudent(students, &size, id, name, score);
}
// 输出学生信息和平均分
printf("\n学籍记录:\n");
for (int i = 0; i < size; i++) {
printf("学号%d: 姓名:%s 分数:%f\n", students[i].student_id, students[i].name, students[i].score);
}
float average = calculateAverage(students, size);
printf("所有学生的平均成绩是:%.2f\n", average);
return 0;
}
```
阅读全文