PTA 全班同学的平均绩点 (20 分)(友元函数)
一个学生类,有三个私有成员:名字name、课程学分指针score、课程成绩指针grade。定义一个友元函数,求全班同学的平均绩点。单门课程的学分绩点=学分*绩点=学分*(成绩/10-5) ; 全班同学的平均绩点是 所有同学的全部课程的学分绩点之和/所有同学学分数之和。单个同学的课程数不超过100门。全班同学人数不超过100名。
输入说明:
输入若干行。
每行一个学生的信息:第一个输入是学生的名字,第二个输入是第一门课程的学分,第三个输入是第一门课程的成绩,第四个输入是第二门课程的学分,第五个输入是第二门课程的成绩,以此类推,最后以-1表示该行输入结束。每个学生的课程数不超过100门。
最后以 no 表示输入结束。
输出一行,即该全班同学的平均绩点。
函数接口定义:
//这是求全部同学平均绩点的友元函数的声明: friend double averagegrade(student *stu, int count)
其中
*stu
和count
都是用户传入的参数。*stu
是传入的学生对象数组的首指针,count
是全班学生数量。裁判测试程序样例:
#include<iostream> #include<string> using namespace std; class student{private:double *grade;double *score;string name; public:student( ){grade=NULL;score=NULL;}student(string n, double *g, double *s){name=n;grade=g;score=s;}friend double averagegrade(student *stu, int count); }; /* 请在这里填写答案 */int main() {student stu[100];double s[100][100], g[100][100];int count=0;string n;for(int i=0;i<100;i++){cin>>n;if(n=="no") break;count++;for(int j=0;j<100;j++){cin>>s[i][j];if(s[i][j]==-1) break;cin>>g[i][j];}stu[i]=student(n, g[i], s[i]);}cout<<averagegrade(stu, count);return 0; }
输入样例:
bob 3 90 2 68.5 2.5 50 -1 andy 3 80 2 77 -1 no
输出样例:
2.408
实现代码如下:
double averagegrade(student *stu, int count) {int i,j;double sum1=0,sum2=0,sum;for(i==0;i<count;i++)for(j=0;stu[i].score[j]!=-1;j++){sum1+=stu[i].score[j]*(stu[i].grade[j]/10-5);sum2+=stu[i].score[j];}if(sum2==0||sum1==0)return 0;return sum1/sum2; }
PTA 全班同学的平均绩点 (20 分)(友元函数)相关推荐
- [C++/PTA] 2017final友元函数之全班同学的平均绩点
[C++/PTA] 2017final友元函数之全班同学的平均绩点 题目要求 解题思路 代码 总结 题目要求 一个学生类,有三个私有成员:名字name.课程学分指针score.课程成绩指针grade. ...
- PTA:6-2顺序表操作集(20分)
大一下半期数据结构 数据结构题目集 PTA:顺序表操作集(20分) 本题要求实现顺序表的操作集. 函数接口定义 List MakeEmpty(); Position Find( List L, Ele ...
- C++学习之路 | PTA乙级—— 1087 有多少不同的值 (20 分)(精简)
1087 有多少不同的值 (20 分) 当自然数 n 依次取 1.2.3.--.N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最大自然 ...
- C++学习之路 | PTA乙级—— 1049 数列的片段和 (20 分)(精简)
1049 数列的片段和 (20 分) 给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段.例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, 0. ...
- C++学习之路 | PTA乙级—— 1039 到底买不买 (20 分)(精简)
1039 到底买不买 (20 分) 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子 ...
- C++学习之路 | PTA乙级—— 1038 统计同成绩学生 (20 分)(精简)
1038 统计同成绩学生 (20 分) 本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第 1 行给出不超过 10 5 的正整数 N,即学生总人数.随后一 ...
- C++学习之路 | PTA乙级—— 1037 在霍格沃茨找零钱 (20 分)(精简)
1037 在霍格沃茨找零钱 (20 分) 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十 ...
- C++学习之路 | PTA乙级—— 1003 我要通过! (20分)(精简)
1003 我要通过! (20分) "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 -- 只要读入的字符串满足下列条件, ...
- C++学习之路 | PTA乙级—— 1002 写出这个数 (20分)(精简)
1002 写出这个数 (20分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10 ...
最新文章
- 【强烈推荐】Github star 10K+,周志华机器学习详细公式推导!
- 是什么造成了网管员的低工资?
- java 耗时_Java使用简单的方法计算代码耗时
- (转)oracle 11g安装后用户名忘记怎么办
- 让你的AI绿起来,艾伦研究所提出深度学习效率评估标准Green AI
- hbase 协处理器 部署_hbase中安装和删除observer协处理器
- JZOJ 5436. 【NOIP2017提高A组集训10.30】Group
- codesys 简单案例_第一章:初识Codesys-1.4从一个示例程序讲起
- 使用 SAP Uiveri5 遇到 passport 依赖的问题以及解决方案
- 世界上最热的地方在哪里?原来火焰山不是第一...
- js中的转译_JavaScript中的填充和转译
- 实现textarea限制输入字数
- PHP+SQLite3简约网址导航、书签管理器网站源码
- matlab 有公式 变量,matlab两个变量拟合公式x=0.40.450.50.550? 爱问知识人
- matlab仿真弹簧波,基于Matlab/Simulink的三弹簧谐振子微振动的仿真实验
- 在linux 创建网络会话和绑定两块网卡
- python变量及其作用域,闭包
- python颜色校正
- 在线音乐播放器 --- 图片上传
- 精益管理研究院陈逸超 | 用精益思维创造数据价值金矿