设计一统计某班级考试成绩中的最高分、最低分和平均分的程序

一、简单一版的成绩管理,循环语句,并未要求保留每位学生的成绩(这就应该需要用数组了)。

1.已知人数,for循环:

#include <iostream>
using namespace std;int main()
{int num, value, max, min, all;//value存放当前输入成绩double ave;//变量的初始化max = 0;min = 100;all = 0;cout << "请输入学生人数:";cin >> num;for (int i = 0; i < num; ++i)//num次循环{cout << "请输入第"<<i+1<<"个人的成绩:";cin >> value;max = value > max ? value : max;// if(value > max) max = value;min = value < min ? value : min;//if(value < min) min = value;all += value;}ave = (double)all / num;cout << "最高分:" << max << endl;cout << "最低分:" << min << endl;cout << "平均分:" << ave << endl;return 0;
}

最后运行结果:

2.不知人数,while循环(-1作为结束标志):

#include <iostream>
using namespace std;int main()
{int num, value, max, min, all;//value存放当前输入成绩,num为学生人数double ave;//变量的初始化max = 0;min = 100;all = 0;num = 0;cout << "请输入第1位同学的成绩:";cin >> value;while(value != -1){++num;max = value > max ? value : max;// if(value > max) max = value;min = value < min ? value : min;//if(value < min) min = value;all += value;cout << "请输入第" << num + 1 << "位同学的成绩:";cin >> value;}ave = (double)all / num;cout << "最高分:" << max << endl;cout << "最低分:" << min << endl;cout << "平均分:" << ave << endl;return 0;
}

运行结果:

二、利用数组存储每位同学的成绩

题目:统计某次考试的最高分、最低分、平均成绩和方差(要求方差,就必须保存每一位同学的成绩)

#include <iostream>
#include <cmath>
using namespace std;int main()
{const int nummax = 100; //定义一个班同学的最大人数int score[nummax], num;double max = 0, min = 100, ave, total = 0, var = 0;//var表示方差cout << "请输入本次考试的人数:";cin >> num;for (int i = 0; i < num; ++i){cout << "请输入第" << i + 1 << "位同学的成绩:";cin >> score[i];total += score[i];if (max < score[i]) max = score[i];if (min > score[i]) min = score[i];}ave = total / num;for (int i = 0; i < num; ++i){var += (score[i] - ave) * (score[i] - ave);}cout << "此次考试的最高分为:" << max << endl;cout << "此次考试的最低分为:" << min << endl;cout << "此次考试的平均分为:" << ave << endl;cout << "此次考试的方差为:" << var << endl;return 0;
}

运行结果:

三、利用函数进行计算

函数将不同的计算模块进行封装,可以使程序较容易理解
题目(同上):统计某次考试的最高分、最低分、平均成绩和方差
运行代码如下:

#include <iostream>
using namespace std;//函数原型声明
double ave(int n,double array[]); //求平均值
double max(int n, double array[]);     //求最大值
double min(int n, double array[]);     //求最小值
double var(double ave, int n, double array[]);     //求方差//主函数
int main()
{const int nummax = 100; //定义一个班同学的最大人数double score[nummax];double num;double average;cout << "请输入本次考试的人数:";cin >> num;for (int i = 0; i < num; ++i){cout << "请输入第" << i + 1 << "位同学的成绩:";cin >> score[i];}average = ave(num, score);//当数组作为函数参数时,要注意只需写入数组名(本质上是数组首位的地址)cout << "此次考试的最高分为:" << max(num,score) << endl;cout << "此次考试的最低分为:" << min(num,score) << endl;cout << "此次考试的平均分为:" << ave(num,score) << endl;cout << "此次考试的方差为:" << var(average, num, score) << endl;return 0;
}//函数定义
double ave(int n,double array[])
{int i;double sum = 0;for (i = 0; i < n; ++i){sum += array[i];}return sum / n;
}double max(int n, double array[])
{double max = 0;int i;//不断更新max值,若array[i]大于当前max值则进行max值的更新for (i = 0; i < n; ++i){max = ( array[i] > max ? array[i] : max );}return max;
}double min(int n, double array[])
{double min = 100;int i;for (i = 0; i < n; ++i){min = ( array[i] < min ? array[i] : min );}return min;
}double var(double ave, int n, double array[])
{double variance = 0;for (int i = 0; i < n; ++i){variance += (array[i] - ave) * (array[i] - ave);}return variance;
}

运行结果:

四、利用指针计算

题目:程序运行时,先输入学生数,然后输入每位同学的成绩,统计某次考试的最高分、最低分、平均成绩和方差(要求方差,就必须保存每一位同学的成绩)

在第二种数组和函数方法中,我们虽然实现了每个学生的成绩存储,但是对于学生人数做了限定,最多为100人,这有两个问题:

  1. 如果某次考试的人数超过100人,该程序将无法工作
  2. 如果参加考试的人数很少,如只有十个,该程序将造成90%空间的浪费

解决这两个问题的途径就是使用动态数组,我们可以根据实际参加考试的人数申请一个存放考试成绩的动态数组。

运行代码如下:

#include <iostream>
#include <cmath>
using namespace std;int main()
{   int  num;double max = 0, min = 100, ave, total = 0, var = 0;//var表示方差cout << "请输入本次考试的人数:";cin >> num;int* score;//定义指针数组score = new int[num];//动态申请空间for (int i = 0; i < num; ++i){cout << "请输入第" << i + 1 << "位同学的成绩:";cin >> score[i];total += score[i];if (max < score[i]) max = score[i];if (min > score[i]) min = score[i];}ave = total / num;for (int i = 0; i < num; ++i){var += (score[i] - ave) * (score[i] - ave);}cout << "此次考试的最高分为:" << max << endl;cout << "此次考试的最低分为:" << min << endl;cout << "此次考试的平均分为:" << ave << endl;cout << "此次考试的方差为:" << var << endl;delete[]score;//动态回收空间return 0;
}

运行结果:

完结撒花!!!

考试成绩最高分、最低分、平均分(c++)_循环、数组、函数、指针相关推荐

  1. 【附源码】用Python从文件中读取学生成绩,并计算最高分/最低分/平均分

    兄弟们, 今天咱们试试用Python从文件中读取学生成绩, 并计算最高分/最低分/平均分. 涉及知识点 文件读写 基础语法 字符串处理 循环遍历 代码展示 模块 import platform 定义获 ...

  2. 如何用Python从文件中读取学生成绩,并计算最高分/最低分/平均分(附源码)

    兄弟们, 今天咱们试试用Python从文件中读取学生成绩, 并计算最高分/最低分/平均分. 涉及知识点 文件读写 基础语法 字符串处理 循环遍历 代码展示 模块 import platform 定义获 ...

  3. 用Python从文件中读取学生成绩,并计算最高分/最低分/平均分

    兄弟们,今天咱们试试用Python从文件中读取学生成绩,并计算最高分/最低分/平均分. 涉及知识点 文件读写 基础语法 字符串处理 循环遍历 代码展示 模块 import platform 定义获取最 ...

  4. 18、查询各科成绩最高分、最低分和平均分,以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率, -- 优良率,优秀率

    -- 18.查询各科成绩最高分.最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率, -- 优良率,优秀率 -- 及格为>=60,中等为:70-80, ...

  5. java平均分排序_编写java程序,输入10个成绩,计算最高分,最低分,平均分,并按从小到大排序,最后统计高于平均分的人有多少?...

    展开全部 代码如下:import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class  ...

  6. c语言输入四个成绩求最高分最低分,数组实现学生成绩录入、求最高分、最低分、平均分和排序...

    /* 使用数组实现10名学生的成绩录入,并输出这10名学生中成绩的 最高分 最低分 平均分 按照分数从大到小排序 思考: 如何实现从小到大排序? 如果学院有5个班,每个班30人,如何处理? 求所有成绩 ...

  7. 场景:一个年级,相当链表A ,该年级5个班,每个班5个人,相当于链表B1--B5:做一个学生成绩管理系统学生成绩有语文 数学 英语功能: 录入成绩 找三科总分的最高分 最低分 算出平均分

    #include <stdio.h> #include <stdlib.h>struct Student//学生结构体 {char* name;int chinese;int ...

  8. 统计成绩java最高成绩_从键盘输入本次 Java 考试五位学生的成绩,求考试成绩最高分。_学小易找答案...

    [简答题]你准备去海南旅游,现在要订购机票.机票的价格受季节旺季.淡季影响,而且头等舱和经济舱价格也不同.假设机票原价为5000元,4~10月为旺季,旺季头等舱打九折,经济舱打八折,淡季头等舱打五折, ...

  9. 二维数组的传参【01_数组指针_指向数组的指针】

    2021-04-08 二维数组的传参[01_数组指针_指向数组的指针] #include <stdio.h> #include <stdint.h> #include < ...

最新文章

  1. 指针07 - 零基础入门学习C语言47
  2. 记录一下提取文件夹中所有文件名字
  3. 线上分享 | 产品架构搭建:从业务到体系
  4. 网易互客敏捷交付实践
  5. java五子棋代码详解_代码详解:Java和Valohai的深度学习之旅
  6. 模块简介/模块的导入/模块的查找顺序/绝对导入和相对导入/软件开发目录规范...
  7. linux驱动静态分配内存,Linux驱动设计——内存与IO访问
  8. Python网络编程中的select 和 poll I/O复用的简单使用
  9. 计算机网络课程设计之基于 IP 多播的网络会议程序
  10. mac maven安装位置_Maven的安装以及仓库的作用
  11. Hive union vs union all
  12. POJ 3617 Best Cow Line
  13. Java多线程及锁相关面试题
  14. 程序员如何提升自己的代码质量?
  15. 买上空气净化器了,真好... ...
  16. 数据库--sql文件
  17. zookeepr 简介
  18. 抵押贷款经纪市场现状及未来发展趋势
  19. 变电站ZRR-9000综合自动化系统的应用
  20. 软考高级之系统架构设计师系列【1】软考介绍

热门文章

  1. 2021年滴滴出行前端面试题目(一面)
  2. python 如何把 utf - 8 字符串写入文件中_心若止水_百度空间
  3. 理解Java的三大特性之多态
  4. 前置仓、VMI仓、VOI、寄售
  5. iOS开发高级分享 - App间账号共享与SDK封装
  6. Unity - 搬砖日志 - Android 的 Optimized Frame Pacing - 对应 ProjectSettings 配置字段:androidUseSwappy
  7. 计算机主机加固之防范勒索病毒
  8. EtherCAT IGH 的下载和编译
  9. java版本商用级saas电商系统帮助商家解决的问题
  10. 如何购买腾讯云服务器(详细教程指南)