栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

PTA 7-8 h0025. 高于平均水平

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PTA 7-8 h0025. 高于平均水平

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
#include
#define N 1005
int a[N];
int b[N];
double cp[N];
double ct[N];
int main(){
    int n;
    int j;
    scanf("%d",&n);
    for(j=0;j
        scanf("%d",&a[j]);
        int sum = 0;
        for(int i=0;i
            scanf("%d ",&b[i]);
            sum = sum+b[i];
        }
        cp[j] = (double)sum/a[j];
        //printf("%lf",cp[j]);
        int temp=0;
        
        for(int i=0;i
            if(b[i]>cp[j])
                temp++;
        }
        //printf("%d",a[j]);
        ct[j] =(double)temp/a[j];
    }
    for(int i=0;i
        printf("%.3lf%n",ct[i]*100);
    }
    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/925945.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号