P8841题解

· · 题解

我们首先定义一个数组 a,记录每个人的原始得分,再定义两个变量 minnmaxx,分别记录原始得分的最大值和最小值。我们可以用公式

100 \times \frac{a_i-a_{min}}{a_{max}-a_{min}}

来求出每个人的得分。注意最终录入的成绩只能是整数,需要直接去掉小数部分,也就是向下取整。

AC代码:

#include<iostream>
#include<cmath>
using namespace std;
int n,a[1000],maxx,minn=10000;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++) {
        cin>>a[i];
        if(a[i]>maxx) maxx=a[i];
        if(a[i]<minn) minn=a[i];
    }
    for(int i=0;i<n;i++) cout<<floor(100.0*(a[i]-minn)/(maxx-minn))<<' ';
    return 0;
}