万科物业组织架构2016:谁能帮我做一下 谢谢

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/11 01:14:42
It is said that 90% of frosh expect to be above average in their class. You are to provide a reality check.

Input

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.

Output

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

Sample Input

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
Sample Output
40.000%
57.143%
33.333%
66.667%
55.556%

/*以下代码测试通过*/
#include <stdio.h>
#include <malloc.h>

typedef struct _SET
{
int N;
unsigned char *data;
}SET;

int main(int argc, char **argv)
{
int C;
int i, j;
double avg = 0.0;
int NPass = 0;
SET *pSet = NULL;

scanf("%d", &C);

pSet = (SET*)malloc(sizeof(SET) * C);

for(i = 0; i < C; i++)
{
scanf("%d", &(pSet[i].N));
pSet[i].data = (unsigned char *)malloc(sizeof(unsigned char) * pSet[i].N);
for(j = 0; j < pSet[i].N; j++)
{
scanf("%d", &(pSet[i].data[j]));
}
}

for(i = 0; i < C; i++)
{
avg = 0.0;
NPass = 0;
for(j = 0; j < pSet[i].N; j++)
{
avg += pSet[i].data[j];
}
avg /= pSet[i].N;
for(j = 0; j < pSet[i].N; j++)
{
if(pSet[i].data[j] > avg)
{
NPass++;
}
}
printf("%.3f%%\n", (double)(NPass * 100) / pSet[i].N);
}

for(i = 0; i < C; i++)
{
free(pSet[i].data);
}
free(pSet);

return 0;
}