用C语言编程,输入2个学生5门课的成绩,分别用函数求:(1)每个学生的平均分;(2)每门课的平均分;(3)找出最高的分数所对应的学生和课程;(4)求出每个学生平均分的方差:(1/n)(∑xi2) - ((∑xi)/ n)2。 **输入提示:"\n输入学生%4d的5个成绩:\n" **输入成绩格式:"%f" **输出提示:"\n 序号 课程1 2 3 4 5 平均分\n" **序号输出格式:"\n NO%2d" **成绩输出格式(提示:5个成绩):"%8.2f" **平均分输出提示:"\n课平均" **平均分输出格式:"%8.2f" **输出格示:"\n\n最高分%8.2f是%d号学生的第%d门课\n" **输出格示:"\n方差 %8.2f" 程序运行示例: ↙ 输入学生 1的5个成绩:↙ 89 96 88 90 76↙ ↙ 输入学生 2的5个成绩:↙ 66 89 87 85 67↙ ↙ 序号 课程1 2 3 4 5 平均分↙ ↙ NO 1 89.00 96.00 88.00 90.00 76.00 87.80↙ NO 2 66.00 89.00 87.00 85.00 67.00 78.80↙ 课平均 77.50 92.50 87.50 87.50 71.50↙ ↙ 最高分 96.00是1号学生的第2门课↙ ↙ 方差 20.25

时间: 2024-03-29 19:37:42 浏览: 27
好的,这是一个比较复杂的问题,需要用到多个函数来实现。以下是程序实现: ```c #include <stdio.h> #include <math.h> #define N 2 // 学生数 #define M 5 // 课程数 // 计算平均分 void average(float score[N][M], float avg[N], float avg_course[M]) { int i, j; for (i = 0; i < N; i++) { avg[i] = 0; for (j = 0; j < M; j++) { avg[i] += score[i][j]; avg_course[j] += score[i][j]; } avg[i] /= M; } for (j = 0; j < M; j++) { avg_course[j] /= N; } } // 找出最高分数所对应的学生和课程 void find_max(float score[N][M], int *student, int *course) { float max_score = score[0][0]; int i, j; for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { if (score[i][j] > max_score) { max_score = score[i][j]; *student = i + 1; *course = j + 1; } } } } // 计算方差 float variance(float avg[N], float *var) { int i; float sum1 = 0, sum2 = 0; for (i = 0; i < N; i++) { sum1 += pow(avg[i], 2); sum2 += avg[i]; } *var = sum1 / N - pow(sum2 / N, 2); } int main() { float score[N][M], avg[N] = {0}, avg_course[M] = {0}, var; int i, j, student, course; // 输入学生成绩 for (i = 0; i < N; i++) { printf("\n输入学生%4d的5个成绩:\n", i + 1); for (j = 0; j < M; j++) { scanf("%f", &score[i][j]); } } // 计算平均分 average(score, avg, avg_course); // 输出表头 printf("\n 序号 课程1 2 3 4 5 平均分\n"); // 输出成绩和平均分 for (i = 0; i < N; i++) { printf(" NO%2d", i + 1); for (j = 0; j < M; j++) { printf("%8.2f", score[i][j]); } printf("%8.2f\n", avg[i]); } // 输出课程平均分 printf("课平均"); for (j = 0; j < M; j++) { printf("%8.2f", avg_course[j]); } // 找出最高分数所对应的学生和课程 find_max(score, &student, &course); printf("\n\n最高分%8.2f是%d号学生的第%d门课\n", score[student - 1][course - 1], student, course); // 计算方差 variance(avg, &var); printf("\n方差 %8.2f\n", var); return 0; } ``` 输出结果: ``` 输入学生 1的5个成绩: 89 96 88 90 76 输入学生 2的5个成绩: 66 89 87 85 67 序号 课程1 2 3 4 5 平均分 NO 1 89.00 96.00 88.00 90.00 76.00 87.80 NO 2 66.00 89.00 87.00 85.00 67.00 78.80 课平均 77.50 92.50 87.50 87.50 71.50 最高分 96.00是1号学生的第2门课 方差 20.25 ```

相关推荐

最新推荐

recommend-type

Maven 下载、安装、配置与使用教程

Maven 下载、安装、配置与使用教程。含maven程序 markdown文本,请使用vscode等代码编辑器查看!!!
recommend-type

起重机械维护保养工艺通则.docx

起重机械维护保养工艺通则.docx
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

优化MATLAB分段函数绘制:提升效率,绘制更快速

![优化MATLAB分段函数绘制:提升效率,绘制更快速](https://ucc.alicdn.com/pic/developer-ecology/666d2a4198c6409c9694db36397539c1.png?x-oss-process=image/resize,s_500,m_lfit) # 1. MATLAB分段函数绘制概述** 分段函数绘制是一种常用的技术,用于可视化不同区间内具有不同数学表达式的函数。在MATLAB中,分段函数可以通过使用if-else语句或switch-case语句来实现。 **绘制过程** MATLAB分段函数绘制的过程通常包括以下步骤: 1.
recommend-type

SDN如何实现简易防火墙

SDN可以通过控制器来实现简易防火墙。具体步骤如下: 1. 定义防火墙规则:在控制器上定义防火墙规则,例如禁止某些IP地址或端口访问,或者只允许来自特定IP地址或端口的流量通过。 2. 获取流量信息:SDN交换机会将流量信息发送给控制器。控制器可以根据防火墙规则对流量进行过滤。 3. 过滤流量:控制器根据防火墙规则对流量进行过滤,满足规则的流量可以通过,不满足规则的流量则被阻止。 4. 配置交换机:控制器根据防火墙规则配置交换机,只允许通过满足规则的流量,不满足规则的流量则被阻止。 需要注意的是,这种简易防火墙并不能完全保护网络安全,只能起到一定的防护作用,对于更严格的安全要求,需要
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

揭秘MATLAB分段函数绘制技巧:掌握绘制分段函数图的精髓

![揭秘MATLAB分段函数绘制技巧:掌握绘制分段函数图的精髓](https://img-blog.csdnimg.cn/direct/3821ea2a63d44e65925d8251196d5ca9.png) # 1. MATLAB分段函数的概念和基本语法** 分段函数是一种将函数域划分为多个子域,并在每个子域上定义不同函数表达式的函数。在MATLAB中,可以使用`piecewise`函数来定义分段函数。其语法为: ``` y = piecewise(x, x1, y1, ..., xn, yn) ``` 其中: * `x`:自变量。 * `x1`, `y1`, ..., `xn`,
recommend-type

如何用python运行loam算法

LOAM (Lidar Odometry and Mapping) 是一种基于激光雷达的SLAM算法,可以用于室内或室外环境的建图和定位。下面是一个基本的步骤来在Python中运行LOAM算法: 1. 安装ROS (Robot Operating System)和LOAM的ROS包 ``` sudo apt-get install ros-<distro>-loam-velodyne ``` 2. 安装Python的ROS客户端库rospy: ``` sudo apt-get install python-rospy ``` 3. 创建ROS工作空间并编译 ``` mkdir -p ~/ca