编写一段完整的程序代码,,统计2022级数据科学与大数据技术专业某班10位学生的,《程序设计基础》和《线性代数》课程的成绩,计算出每个学生的总分、平均分,依次将平均分小于60.0的学生的学号、姓名和总分输出。 要求: 工将学生的信息构造成结枸体数组,结构体中需要记录学生的学号、姓名、两门课程成绩、总分和平均分; 3) 兰车商点分用南数sunScore许算得品(计算过程用指针操作 ,)学生的基大信意需要从键盘依次输入。
时间: 2023-12-16 12:08:58 浏览: 77
好的,以下是一个C语言的例子,实现您所需要的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#define N 10 // 学生数
#define COURSE_NUM 2 // 课程数
typedef struct { // 定义结构体存储学生信息
int id; // 学号
char name[20]; // 姓名
float scores[COURSE_NUM]; // 课程成绩
float total_score; // 总分
float average_score; // 平均分
} Student;
int main() {
Student students[N]; // 学生数组
float sum_score = 0; // 总分
float sum_average_score = 0; // 平均分
// 输入学生信息和成绩
for (int i = 0; i < N; i++) {
printf("请输入第%d个学生的学号、姓名、程序设计基础成绩和线性代数成绩,以空格分隔:", i + 1);
scanf("%d %s %f %f", &students[i].id, students[i].name, &students[i].scores[0], &students[i].scores[1]);
// 计算总分和平均分
students[i].total_score = students[i].scores[0] + students[i].scores[1];
students[i].average_score = students[i].total_score / 2.0f;
sum_score += students[i].total_score;
sum_average_score += students[i].average_score;
}
// 计算平均总分和平均平均分
float average_score = sum_score / (N * COURSE_NUM);
float average_average_score = sum_average_score / N;
// 输出平均总分和平均平均分
printf("平均总分:%f,平均平均分:%f\n", average_score, average_average_score);
// 输出平均分小于60分的学生信息
printf("平均分小于60分的学生信息:\n");
for (int i = 0; i < N; i++) {
if (students[i].average_score < 60.0f) {
printf("学号:%d,姓名:%s,总分:%f\n", students[i].id, students[i].name, students[i].total_score);
}
}
return 0;
}
```
该程序中,先定义了一个结构体`Student`,用于存储每个学生的信息,包括学号、姓名、两门课程成绩、总分和平均分。在主函数中,先定义了一个`Student`类型的数组`students`,用于存储所有学生的信息。然后通过循环依次输入每个学生的信息和成绩,并计算出总分和平均分。计算出所有学生的总分和平均分后,再计算出平均总分和平均平均分。最后,通过循环输出平均分小于60.0分的学生的学号、姓名和总分。
阅读全文