[NOIP2017 普及组] 成绩
题目背景
NOIP2017 普及组 T1
题目描述
牛牛最近学习了 C++ 入门课程,这门课程的总成绩计算方法是:
总成绩=作业成绩$ \times 20%+$小测成绩$×30%+$期末考试成绩$ \times 50%$
牛牛想知道,这门课程自己最终能得到多少分。
输入格式
三个非负整数 $A,B,C$,分别表示牛牛的作业成绩、小测成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是 $100$ 分。
输出格式
一个整数,即牛牛这门课程的总成绩,满分也是 $100$ 分。
样例 #1
样例输入 #1
100 100 80
样例输出 #1
90
样例 #2
样例输入 #2
60 90 80
样例输出 #2
79
提示
输入输出样例 1 说明
牛牛的作业成绩是 $100$ 分,小测成绩是 $100$ 分,期末考试成绩是 $80$ 分,总成绩是 $100 \times 20%+100 \times 30%+80 \times 50%=20+30+40=90$。
输入输出样例 2 说明
牛牛的作业成绩是 $60$ 分,小测成绩是 $90$ 分,期末考试成绩是 $80$ 分,总成绩是 $60 \times 20%+90 \times 30%+80 \times 50%=12+27+40=79$。
数据说明
对于 $30%$ 的数据,$A=B=0$。
对于另外 $30%$ 的数据,$A=B=100$。
对于 $100%$ 的数据,$0≤A,B,C≤100$ 且 $A,B,C$ 都是 $10$ 的整数倍。
代码
#include<bits/stdc++.h>
using namespace std;
int a,b,c;
int main()
{
scanf("%d%d%d",&a,&b,&c);
int ans=a*0.2+b*0.3+c*0.5;
printf("%d",ans);//可能因为浮点运算误差而失分
return 0;
}
或
#include<bits/stdc++.h>
using namespace std;
int main()
{
double a,b,c;
double s;
scanf("%lf%lf%lf",&a,&b,&c);
s=a*0.2+b*0.3+c*0.5;
printf("%.lf",s);//double型精度满足要求
}
或
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c;
int s;
scanf("%d%d%d",&a,&b,&c);
s=a*20/100+b*30/100+c*50/100;//不涉及强制转化
printf("%d",s);
}
标签:NOIP2017,普及,int,样例,times,100,成绩,80,P3954
From: https://www.cnblogs.com/suxiyiwang/p/17454411.html