A.成绩统计 | |||||
| |||||
Description | |||||
早期很多大学在进行考试成绩统计时,如果整体成绩较差的话,会采用一种方法重新设定成绩。即对原始成绩开根号后乘10。现在根据学生最终成绩,如果60分及其以上成绩的学生人数小于40%,那么需要重新计算成绩,否则保存原始成绩不变。 | |||||
Input | |||||
有多组测试数据。 每组测试数据占据输入的一行,每组测试数据的格式为: 第一个整型数n代表学生人数(n的值最大为20),后面为n个整型数,分别对应n的学生的成绩(均在0-100之间),各数据之间用空格分隔。 | |||||
Output | |||||
针对每组测试数据输出一行数据,包含n个整型数,为学生的最终成绩(如果60分及其以上成绩的学生人数小于40%,那么需要重新计算成绩,否则保存原始成绩不变),成绩之间用“:”分隔。 | |||||
Sample Input | |||||
10 45 60 70 58 89 30 59 0 78 65 8 53 36 72 46 62 0 24 39 | |||||
Sample Output | |||||
45:60:70:58:89:30:59:0:78:65: 72:60:84:67:78:0:48:62: | |||||
Hint | |||||
当成绩进行开根号后乘10处理后,所得分数不进行四舍五入处理,而是取整截小数处理。 sqrt函数用于求绝对值,存在于“cmath”头文件中。 使用方法:sqrt(变量),返回值为变量的开根号值。 |
#include <iostream>
#include<cmath>
using namespace std;
int arr[25];
int main()
{
int n;
while (cin >> n)
{
int x = n;
int a = 0;
int i = 0;
while (n--)
{
int m;
cin >> m;
if (m >= 60)
{
a++;
}
arr[i++] = m;
}
if (a <= 0.4 * x)
{
for (int i = 0; i < x; i++)
{
int a = sqrt(arr[i]) * 10;
cout << a << ':';
}
cout << '\n';
}
else
{
for (int i = 0; i < x; i++)
{
cout << arr[i] << ':';
}
cout << '\n';
}
}
return 0;
}