7-8 h0025. 高于平均水平
题目
据说90%的新生希望自己的成绩在班上高于平均水平。请你提供一个事实核查。
输入格式
第一行包含一个整数C,测试用例的数量。C数据集如下。每个数据集以整数N开始,N是班级的人数(1 <= N <= 1000)。后面跟着N个整数,用空格或换行符分隔,每个整数表示一个学生的最终成绩(0到100之间的整数)。
输出格式
对于每种情况,你都要输出一条线,给出成绩高于平均水平的学生的百分比,四舍五入到小数点后三位。
输入样例
5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91
输出样例
40.000%
57.143%
33.333%
66.667%
55.556%
要求
Code Size Limit 16 KB
Time Limit 400 ms
Memory Limit 64 MB
解题思路
本题目要细心
一,定义数据,输入数据n,并通过第一层循环输入a [ j ]就是接下来一行当中数据元素的个数,同时加入一个求和变量,第二层循环进行相加b [ i ],求出一行数据的和sum
二,定义第二个数据元素double cp[ N ]存储每一行的分数线(double) sum/a[ j ];
三,定义一个中间变量temp = 0 ;循环遍历每一个数据元素,将每个元素与分数线cp [ j ]
进行比较,大于分数线上的就temp ++;
四,将每一组循环遍历的temp 与当行个数a [ j ]进行相除,并强制转化那位double 类型存储到最后一个数组double ct[ j ]; 但这里要注意,前面的相处之所以要进行强制转化,是在temp / a[ j ] 相除之后是个整型或者float 型
五,数据输出,当前以上得出的double ct [ j ];得出的数据是小于 1 的比率,输出是要乘以100 并在后面加上 “%” 和%.3lf的要求。
示例代码
#include<stdio.h>