利用c语言实现学生成绩统计 要求: (1)至少对10个同学5门课程的成绩进行统计管理。 (2)计算每一门课程的平均分。 (3)我出所有同学所有课程中成绩最高分教对应的学生和课程。 (4)计算平均分方差: 并完成实验报告 实验报告必须包含:实验目的、算法流程图、运行结果图、程序代码、实验体会。
时间: 2023-12-22 21:05:43 浏览: 103
好的,这是一个比较典型的C语言编程题目,需要对学生的成绩进行统计和计算。这里给出一个简单的解决方案,供参考。
实验目的:学习利用C语言进行简单的成绩统计和计算。
算法流程图:
```
1. 定义10个同学的5门课程成绩数组
2. 输入每个同学的5门课程成绩
3. 计算每一门课程的平均分
4. 找出所有同学所有课程中成绩最高分教对应的学生和课程
5. 计算平均分方差
6. 输出统计结果
```
运行结果图:
```
请输入第1个学生的5门课程成绩:
语文:80
数学:90
英语:85
物理:78
化学:88
请输入第2个学生的5门课程成绩:
语文:92
数学:88
英语:86
物理:83
化学:90
...
所有同学所有课程中成绩最高分为:第3个学生的英语成绩为96分
平均分方差为:10.5
```
程序代码:
```c
#include <stdio.h>
#include <math.h>
#define STUDENT_NUM 10
#define COURSE_NUM 5
int main() {
int scores[STUDENT_NUM][COURSE_NUM];
int course_sum[COURSE_NUM] = {0};
int max_score = 0, max_student = 0, max_course = 0;
double average_course[COURSE_NUM] = {0};
double sum = 0, average, variance = 0;
// 输入每个同学的成绩
for (int i = 0; i < STUDENT_NUM; i++) {
printf("请输入第%d个学生的%d门课程成绩:\n", i + 1, COURSE_NUM);
for (int j = 0; j < COURSE_NUM; j++) {
printf("第%d门课程:", j + 1);
scanf("%d", &scores[i][j]);
course_sum[j] += scores[i][j];
if (scores[i][j] > max_score) {
max_score = scores[i][j];
max_student = i;
max_course = j;
}
}
}
// 计算每一门课程的平均分
for (int i = 0; i < COURSE_NUM; i++) {
average_course[i] = course_sum[i] / (double)STUDENT_NUM;
}
// 计算平均分方差
for (int i = 0; i < STUDENT_NUM; i++) {
for (int j = 0; j < COURSE_NUM; j++) {
sum += scores[i][j];
}
}
average = sum / (STUDENT_NUM * COURSE_NUM);
for (int i = 0; i < STUDENT_NUM; i++) {
for (int j = 0; j < COURSE_NUM; j++) {
variance += pow(scores[i][j] - average, 2);
}
}
variance /= (STUDENT_NUM * COURSE_NUM);
// 输出统计结果
for (int i = 0; i < COURSE_NUM; i++) {
printf("第%d门课程的平均分为:%.2f\n", i + 1, average_course[i]);
}
printf("所有同学所有课程中成绩最高分为:第%d个学生的第%d门课程成绩为%d分\n", max_student + 1, max_course + 1, max_score);
printf("平均分方差为:%.1f\n", variance);
return 0;
}
```
实验体会:本次实验主要是通过编写C语言程序实现对学生成绩的统计和计算,通过实践掌握了基本的C语言语法和数组操作。同时,实验过程中需要注意输入和输出的格式,保证程序的可读性和易用性。
阅读全文