定义一个学生结构体,包括学号、姓名和分数三个数据分量。 2、从键盘上输入10个学生的信息(使用第1步中定义的结构体),存放到一个学生结构体数组中,写一个函数(以数组首地址为参数)求出10个学生的最高位、最低分和平均分,输出到屏幕上。
时间: 2024-10-06 12:03:27 浏览: 69
首先,我们定义一个名为`Student`的学生结构体,包含学号、姓名和分数三个成员:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
int student_id; // 学号
char name[50]; // 姓名
float score; // 分数
} Student;
```
接下来,我们编写一个函数来获取最高分、最低分和平均分,并在主函数中实现输入10个学生信息并调用这个函数:
```c
void calculate_scores(Student students[], int size) {
float sum = 0.0;
int max_score = students[0].score;
int min_score = students[0].score;
for (int i = 0; i < size; i++) {
sum += students[i].score;
if (students[i].score > max_score) {
max_score = students[i].score;
}
if (students[i].score < min_score) {
min_score = students[i].score;
}
}
float average_score = sum / size;
printf("最高分: %d\n", (int)max_score);
printf("最低分: %d\n", (int)min_score);
printf("平均分: %.2f\n", average_score);
}
int main() {
// 输入10个学生信息并存储到结构体数组
const int num_students = 10;
Student students[num_students];
for (int i = 0; i < num_students; i++) {
printf("请输入学生%d的学号、姓名和分数:\n", i+1);
scanf("%d%s%f", &students[i].student_id, students[i].name, &students[i].score);
}
// 调用计算成绩函数
calculate_scores(students, num_students);
return 0;
}
```
在这个程序中,用户首先会看到提示输入每个学生的信息,然后`calculate_scores`函数遍历整个学生数组,计算总分、最高分和最低分。最后,在`main`函数中显示结果。
阅读全文