讨论
858
通过
3.6K
提交
题目提供者 vercont
评测方式 云端评测
标签
难度 入门难度
时空限制 1000ms / 128MB
提交 题解
提示:收藏到任务计划后,可在首页查看。
最新讨论 显示
推荐的相关题目 显示
题目背景
小奔的score
题目描述
小奔的期末考试结束了。
他的成绩不久之后就会发下来。
给出一个考试成绩表格,例如:
科目/分值种类 语文 数学 英语
满分 100100 120120 150150
实际得分 9999 7373 100100
当然。学校的老师认为如果录入如此多的成绩不好算分,于是他想要你的综合成绩评定
综合成绩评定指:(每一科的满分之和3-每一科的实际得分之和2)÷每科所扣除分数的和。
小奔想请你给出他的综合成绩,你能做到吗?
输入输出格式
输入格式:
第一行给出一个整数nn,表示科目的总数。 第二行nn个整数a_ia
i
,表示第ii门课程的满分。 第三行nn个整数b_ib
i
,表示第ii门课程小奔的实际得分。
输出格式:
一行一个数,表示他的综合成绩。结果保留66位小数
输入输出样例
输入样例#1: 复制
3
10 10 10
5 5 5
输出样例#1: 复制
4.000000
说明
对于2020%的数据,数据为样例
对于100100%的数据,n<=1e7n<=1e7
根据题意,定义一个数组,但是数组不能太大(小),10000000就够了。
long long a[10000001],p[10000001],n;
为了方便计算,再定义两个存储变量
double b=0.0,c=0.0;
for循环定义数组
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++){
scanf("%d",&p[i]);
}
(如果合并,会出现交叉现象,输入数据一个满分一个实际,但是是先输入所有满分,再输入所有实际成绩)
再使用一个for语句来计算(此处可以合并,因为项数一样)
for(int i=1;i<=n;i++){
b+=1.0*a[i];
c+=1.0*p[i];
}
最后输出(略)
return就不用说了,养成习惯
程序仅供参考
代码如下:
#include<iostream>
#include<cstdio>
using namespace std;
double b=0.0,c=0.0;//用浮点型定义存储值方便计算
long long a[10000001],p[10000001],n;//定义成绩
int main(){
scanf("%d",&n);//输入n组数据
for(int i=1;i<=n;i++){//输入数组
scanf("%d",&a[i]);//定义满分分数
}
for(int i=1;i<=n;i++){
scanf("%d",&p[i]);//定义实际 分数
}
for(int i=1;i<=n;i++){
b+=1.0*a[i];//做总分累加
c+=1.0*p[i];//做成绩累加
}
printf("%.6lf",(b*3-c*2)/(b-c));//使用printf函数输出,计算综合分
return 0;//return 0结束,否则会返回一个不定的值
}
如有更好的代码,评论区见~~~~~~~~~~~