资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
X市正在进行歌唱比赛,请你写一个程序计算得分。
每名选手从1到N编号,每名选手的综合成绩由以下几个部分组成:
1.歌唱得分占70%
2.才艺展示得分占20%
3.观众投票得分占10%
4.不超过五分的特殊加分(如果总分超过100分则记为100)
输入格式
第一行一个整数N,表示选手人数
接下来N行,每行四个整数,分别表示歌唱得分,才艺得分,投票得分和加分。
输出格式
输出N行,每行一个数,表示得分(保留一位小数)
样例输入
6
62 50 60 1
77 71 85 3
98 79 98 5
75 62 60 0
99 72 68 4
82 88 89 2
样例输出
60.4
79.6
99.2
70.9
94.5
85.9
数据规模和约定
N <= 10000;
提交代码
解题思路:
一个简单的输入判断问题,我用一个二维数组表示各个成绩(当然在做完之后发现结构体才是最好用的),另一个数组存储最后的总分,在输入成绩的时候就录入到总分中,并判断是否大于100,最后的输出要注意限制输出位数,代码如下:
#include<bits/stdc++.h>
using namespace std;
double a[10000][4];
double b[10000];
int main(){
int n;
cin >> n;
for(int i = 0; i < n; i ++){
for(int j = 0; j < 4; j ++){
cin >> a[i][j];
if(j == 0){
b[i] += a[i][j] * 0.7;
}else if(j == 1){
b[i] += a[i][j] * 0.2;
}else if(j == 2){
b[i] += a[i][j] * 0.1;
}else{
b[i] += a[i][j];
}
if(b[i] > 100){
b[i] = 100;
}
}
}
cout << setiosflags(ios::fixed) << setiosflags(ios::right) << setprecision(1);//限制输出位数
for(int i = 0; i < n; i ++){
cout << b[i] << endl;
}
return 0;
}