PAT B1077 cálculo del puntaje de evaluación mutua (20 minutos)

enlaces a los temas : https://pintia.cn/problem-sets/994805260223102976/problems/994805262303477760

Título Descripción
Curso de Computación en Zhejiang, a menudo hay grupo cruzada cuenta del informe de este enlace. Una fase de grupos de la introducción de su trabajo, a otros grupos de la audiencia por sus puntuaciones de rendimiento. Este último grupo de puntuación de la evaluación mutua se calcula mediante: la puntuación de todos los demás grupos, la eliminación de un puntos más altos y más bajos, la fracción restante de puntos promediados denomina G 1; Rating Maestro se refiere a este grupo es G 2. Este grupo de puntuación (G 1 G2) / 2, el resultado final después de los puntos decimales se han redondeado. Esta pregunta requiere que escribir un programa para maestros de ayuda calculados para cada grupo de resultados de la evaluación por pares.

De entrada
de entrada de la primera línea da dos números enteros positivos N (> 3) y M, respectivamente, y el número de paquetes a cabo, no más de 100. Entonces N filas, cada fila del conjunto se le da un puntaje obtenido por N (número entero dentro del intervalo están garantizados a un entero), el primero de los cuales es un profesor puntuaciones dadas, seguido de los grupos N-1 a la otra puntuación. En caso de ser de entrada válido [, M 0] número entero en el intervalo de, si no en el rango válido, la puntuación se ignorará. profesores de las asignaturas para garantizar que las calificaciones son legítimas, y cada grupo tendrá por lo menos tres de puntuación legítimo de los compañeros de clase.

De salida
es la puntuación final de cada grupo de salidas. Cada puntuación por línea.

entrada de la muestra
. 6 50
42 es 41 es 49 49 35 38 es
36 51 es 50 28 -1 30
40 36 47 49 41 es 33 es
30250-25.274.531
48 0 50 50 0 1234
43 es 41 es 42 es 36 29 29

Ejemplo de salida
42 es
33 es
41 es
31 es
37 [
39

código

#include <cstdio>

int main() {
	int n, m, a[100010];
	int min, max, sum, num;
	scanf("%d%d", &n, &m);
	for(int i = 0; i < n; i++) {
		min = 101; max = 0; sum = 0; num = 0;
		for(int j = 0; j < n; j++) {
			scanf("%d", &a[j]);
			if(j > 0 && a[j] >= 0 && a[j] <= m) {
				if(a[j] > max)
					max = a[j];
				if(a[j] < min)
					min = a[j];
				sum += a[j];
				num++;
			}
		}
		printf("%d\n", (int)(((sum - min - max) * 1.0 / (num - 2) + a[0]) / 2.0 +  0.5));
	}
	return 0;
}
Publicados 327 artículos originales · ganado elogios 12 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/Rhao999/article/details/105189720
Recomendado
Clasificación