首页 > 专题系列 > Java解POJ > POJ 2350 Above Average [解题报告] Java
2013
11-11

POJ 2350 Above Average [解题报告] Java

Above Average

问题描述 :

It is said that 90% of frosh expect to be above average in their class. You are to provide a reality check.

输入:

The first line of standard input contains an integer C, the number of test cases. C data sets follow. Each data set begins with an integer, N, the number of people in the class (1 <= N <= 1000). N integers follow, separated by spaces or newlines, each giving the final grade (an integer between 0 and 100) of a student in the class.

输出:

For each case you are to output a line giving the percentage of students whose grade is above average, rounded to 3 decimal places.

样例输入:

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%

解题代码:

import java.util.Scanner;   
  
/**  
 * poj2350 easy  
 * @author NC  
 */  
public class Main {   
  
    public static void main(String[] args) {   
        Scanner scan = new Scanner(System.in);   
        if (scan.hasNext()) {   
            int n = scan.nextInt();   
            for (int i = 0; i < n; i++) {   
                int nn = scan.nextInt();   
                float sum = 0f;   
                int[] aa = new int[nn];   
                for (int j = 0; j < nn; j++) {   
                    aa[j]= scan.nextInt();   
                    sum = sum + aa[j];   
                }   
                float average = sum/nn;   
                float count = 0f;   
                for(int j = 0; j < nn; j++){   
                    if(aa[j]>average){   
                        count++;   
                    }   
                }   
                System.out.printf("%.3f",count/nn*100);   
                System.out.println("%");   
  
            }   
        }   
    }   
}

  1. 学算法中的数据结构学到一定程度会乐此不疲的,比如其中的2-3树,类似的红黑树,我甚至可以自己写个逻辑文件系统结构来。