C语言用结构体学生信息统计代码
时间: 2024-12-28 18:24:16 浏览: 16
在C语言中,你可以创建一个名为“student”的结构体来存储学生的信息,如姓名、年龄和成绩等。然后编写函数来进行学生的统计。下面是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
struct student {
char name[50];
int age;
float score;
};
// 函数声明
void add_student(struct student students[], int *size);
void display_students(struct student students[], int size);
int count_students_with_score(struct student students[], int size, float min_score);
int main() {
// 初始化变量
struct student students[10]; // 学生数组,最多10名学生
int size = 0; // 当前学生数量
float min_score;
// 添加学生信息并统计分数
printf("请输入学生信息 (姓名、年龄、分数) 直到输入 'q' 结束:\n");
while (1) {
char input_name[50];
int input_age;
float input_score;
scanf("%s %d %f", input_name, &input_age, &input_score);
if (strcmp(input_name, "q") == 0) break;
students[size].name = input_name;
students[size].age = input_age;
students[size].score = input_score;
size++;
// 如果需要,可以在这里添加对新输入分数的简单统计
}
// 显示所有学生信息
display_students(students, size);
// 计算并显示平均分和及格人数
min_score = count_students_with_score(students, size, 60); // 可调整及格线
printf("\n最低及格分数为:%f\n", min_score);
printf("达到及格线的学生人数:%d\n", size - count_students_with_score(students, size, min_score));
return 0;
}
// 添加学生到数组
void add_student(struct student students[], int *size) {
// ... (这里可以添加具体实现,如上述代码所示)
}
// 显示学生信息
void display_students(struct student students[], int size) {
for (int i = 0; i < size; i++) {
printf("学生 %d: 姓名:%s, 年龄:%d, 成绩:%f\n", i + 1, students[i].name, students[i].age, students[i].score);
}
}
// 统计分数超过指定值的学生数
int count_students_with_score(struct student students[], int size, float min_score) {
int count = 0;
for (int i = 0; i < size; i++) {
if (students[i].score >= min_score) {
count++;
}
}
return count;
}
```
这个程序会持续接收用户的输入,直到用户输入"q"退出,期间可以添加、显示和统计学生信息。注意,在实际项目中,可能需要处理更多的边界条件和错误检查。
阅读全文