P3954 成绩(noip2017普及组)
题目描述
牛牛最近学习了C++入门课程,这门课程的总成绩计算方法是:
总成绩=作业成绩\times 20\%+×20%+小测成绩×30\%+×30%+期末考试成绩\times 50\%×50%
牛牛想知道,这门课程自己最终能得到多少分。
输入输出格式
输入格式:
三个非负整数A,B,CA,B,C,分别表示牛牛的作业成绩、小测成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是100100分。
输出格式:
一个整数,即牛牛这门课程的总成绩,满分也是100100分。
输入输出样例
说明
输入输出样例1说明
牛牛的作业成绩是100100分,小测成绩是100100分,期末考试成绩是8080分,总成绩是100 \times 20\%+100 \times 30\%+80 \times 50\%=20+30+40=90100×20%+100×30%+80×50%=20+30+40=90。
输入输出样例2说明
牛牛的作业成绩是6060分,小测成绩是9090分,期末考试成绩是8080分,总成绩是60 \times 20\%+90 \times 30\%+80 \times 50\%=12+27+40=7960×20%+90×30%+80×50%=12+27+40=79。
数据说明
对于30\%30%的数据,A=B=0A=B=0。
对于另外30\%30%的数据,A=B=100A=B=100。
对于100\%100%的数据,0≤A,B,C≤1000≤A,B,C≤100且A,B,CA,B,C都是1010的整数倍。
解析:
这是一个比较简单的程序,适合刚刚入门的新手,但是就在这简单的程序中却蕴含玄机,一不小心就掉进坑里。下面听我细细道来。
Ac程序1:因为有小数,直接使用double类型。
#include<iostream>
using namespace std;
int main(){
double sum,x,y,z;
cin>>x>>y>>z;
sum=x*0.2+y*0.3+z*0.5;
cout<<sum<<endl;
}
Ac程序2:避免使用double
#include<iostream>
using namespace std;
int main(){
int sum,x,y,z;
cin>>x>>y>>z;
sum=(x*+y*+z*)/;
cout<<sum<<endl;
}
得部分分程序:
#include<cstdio>
#include<algorithm>
using namespace std;
int a,b,c;
int main()
{//输入60 90 80 正确结果是79.而这里输出78,为什么呢?
scanf("%d%d%d",&a,&b,&c);
printf("%d\n",int(a*0.2+0.3*b+0.5*c));
return ;
}
输入60 90 80 正确结果是79.而有些机器会输出78,原因是精度问题(s的结果本来正好是整数)。
在计算时其实:78.999999999999和79.0000000000001和79.000000000000几乎被认为是相等的。
但int(取整)可能不一样了,引起误差 ,如果使用round(四舍五入))就可以避免这个问题)。
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int a,b,c,s;
int main()
{//输入60 90 80 正确结果是79.而这里输出78,为什么呢?
scanf("%d%d%d",&a,&b,&c);
s=round(a*0.2+0.3*b+0.5*c);
printf("%d\n",s);
return ;
}
总结:
P3954 成绩(noip2017普及组)的更多相关文章
- [NOIP2017普及组]跳房子(二分,单调队列优化dp)
[NOIP2017普及组]跳房子 题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一. 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 nn 个格子, ...
- 「LOJ 6373」NOIP2017 普及组题目大融合
NOIP2017 普及组题目大融合 每个读者需要有某个后缀的书,可以暴力map,复杂度\(o(9*nlog(n))\),也可以反串建trie树,复杂度\(o(9*n)\). 故可以求出需要的最少的RM ...
- P3956 [NOIP2017 普及组] 棋盘
P3956 [NOIP2017 普及组] 棋盘 题目 题目描述 有一个 m×m 的棋盘,棋盘上每一个格子可能是红色.黄色或没有任何颜色的.你现在要从棋盘的最左上角走到棋盘的最右下角. 任何一个时刻,你 ...
- noip2017普及组
过了这么久才来写博客,也是我这么一段时间都很低迷吧.... 老实来说,今年应该是要打提高组的...可还是打了普及组... 其实最猥琐的还是我连普及都写挂了,作为一个学了两年的人,图论,进阶dp都写过的 ...
- NOIP2017普及组比赛总结
期中考总结&NOIP2017总结 2017年11月11日,我第二次参加NOIP普及组复赛.上一年,我的得分是250分,只拿到了二等奖.我便把目标定为拿到一等奖,考到300分以上. 早上8点多, ...
- NOIP2017普及组解题报告
刚参加完NOIP2017普及,只考了210,于是心生不爽,写下了这篇解题报告...(逃 第一次写博,望dalao们多多指导啊(膜 第一题score,学完helloworld的人也应该都会吧,之前好多人 ...
- NOIP2017普及组初赛试题及答案
普及组C++语言试题 一.单项选择题(共 20 题,每题 1.5 分,共计 30 分:每题有且仅有一个正确选项) 1.在 8 位二进制补码中,10101011 表示的数是十进制下的( ). A. 43 ...
- NOIP2017普及组T2题解
还是神奇的链接 上面依然是题目. 这道题依然很简单,比起2015年的普及组t2好像还是更水一些. 不过这道题能讲的比第一题多. 我们一起来看一下吧! 这一题,我们首先将书的编号全部读入,存在一个数组里 ...
- NOIP2017普及组初赛总结
去年,我普及组复赛翻车,居然没进一等奖,于是,今年,我只能再做一次普及组. 这次初赛我93.5分,居然是中山市第一--(中山市太弱了?) 其实我觉得我没考好. 比赛时第二题(计算机存储数据的基本单位是 ...
随机推荐
- The threat to world
The threat to world 对世界贸易的威胁"> The rules-based system is in grave(严重的) danger 基于规则的体系岌岌可危 DO ...
- python实现将base64编码的图片下载到本地
# -*- coding:utf-8 -*- #!python3 import os import base64 sss ="""base64的编码"" ...
- selenium java maven testNg环境搭建
maven获取jar的xml地址:http://mvnrepository.com 步骤一安装jdk(略) 步骤二 安装eclipse(略) 步骤三 安装testNG 步骤四 maven安装 步骤三 ...
- vlog.hpp
//vov #ifndef VLOG_HPP #define VLOG_HPP #include <sys/time.h> #include <unistd.h> #ifnde ...
- 2019.4.24(js)
1. 取得正数和负数的绝对值 Math.abs(7.25) Math.abs(-7.25) 2.利用JS刷新页面方法 https://www.cnblogs.com/Chen-XiaoJun/p/62 ...
- [Dababase - MySQL- Linux] 数据库安装位置
数据库安装最好是安装在 usr/local/ 里面,因为默认的很多东西都是指向这个文件夹中的.
- nginx增加第三方模块
增加第三方模块 ============================================================ 一.概述nginx文件非常小但是性能非常的高效,这方面完胜ap ...
- getter unddfined
今天用vue.js写代码 报错: getter unddfined 错误原因:没有在main.js中注册store
- C#生成.tlb文件初认识
刚接手同事的代码,生成文件时,发现生成了一个对应的dll文件(应用程序中输出类型为类库),和一个对应的.tlb文件,但是报如下的错误: 那么.tlb文件是如何生成的呢? 选择项目->右键属性-& ...
- 【还是回来了】博客搬家--https://cangbean.github.io
还是弄了个自己的地址:https://cangbean.github.io 想记录下,防止万一以后迁移不好弄 想练习markdown写作 折腾而已 以后不再博客园记录东西了,但是还是会回来看看的