Colección de citas famosas - Frases inspiradoras - ¿Cómo calcular la puntuación de la evaluación integral?

¿Cómo calcular la puntuación de la evaluación integral?

Realice el cálculo de los puntajes de la evaluación integral de los estudiantes en una clase (incluidos tres cursos de matemáticas, inglés y política, créditos, ponderaciones y otra información) y ordénelos según la evaluación integral de los estudiantes. puntuaciones de evaluación.

Entrada

La entrada incluye múltiples conjuntos de datos. La primera línea de cada conjunto de datos es un número entero n (n<50000), que indica cuántos estudiantes hay en el siguiente; La línea es n + 1, la primera línea de entrada son tres números reales (entre 0 y 1), que representan respectivamente el peso de los puntajes de las tres materias en la evaluación integral, cada una de las n líneas ingresadas después representa a un estudiante, y cada una de ellas; La línea a su vez es Nombre (nota: el nombre solo contiene letras y guiones bajos, no más de 25 caracteres), puntajes en tres materias: chino, matemáticas e inglés (nota: los puntajes son números reales, entre 0 y 100), evaluación integral puntuaciones de todas las materias Fracciones y sumas ponderadas.

Resultado

Para cada conjunto de datos, las clasificaciones de puntajes de la evaluación integral se generan de mayor a menor para todos los estudiantes (los mismos puntajes están ordenados por nombre en el diccionario), con uno fila para cada estudiante, y cada fila es: Nombre, puntajes de chino, matemáticas e inglés, así como puntajes de evaluaciones integrales. Consulte los ejemplos para obtener más detalles.

Entrada de muestra

1 0,5 0,5 0,5 zhangsan 100 100 100 3 0,2 0,3 0,6 zhangsan 100 20 50 lisi 55 66 77 wangwu 22 33 66

Salida de muestra

zhangsan 100.0 100.0 100.0 150.0 lisi 55.0 66.0 77.0 77.0 zhangsan 100.0 20.0 50.0 56.0 wangwu 22.0 33.0 66.0 53.9

SUGERENCIA

Investigar puntos de conocimiento: datos pequeños Cantidad problema de clasificación , complejidad de tiempo O(nlog)), complejidad de espacio O(n)

Desactivar clasificación de funciones de biblioteca

Agregar código

#include "iostream"

#include "cstring"

#include "cstdio"

usando el espacio de nombres std;

typedef struct

{

nombre de cadena;

doble chino,matemáticas,inglés,suma;

} estudiante;

void Qst(estudiante * s,int bajo,int alto)

{

int x=bajo;

int y=alto;

estudiante st= s[bajo ];

if(bajo >= alto)

{

return;

}

mientras( x

{

mientras(x=st.sum)

{

if(s[y].sum == st .sum&&s[y].nombre>= st.nombre)

descanso;

--y;

}

s[ x]=s[y];

mientras(x < y && s[x].sum<=st.sum)

{

if( s[x].sum== st.sum&&s[x].name<= st.name)

descanso;

++x;

}

s[y]=s[x];

}

s[x]=st;

Qst (s, bajo,x-1);

Qst(s,x+1,alto);

}

int main()

{

int n,i;

nombre de cadena;

doble a,b,c;

mientras( cin>> n>>a>>b>>c)

{

estudiante s[n];

for(i=0; i

{

cin>>s[i].nombre>>s[i].chino>>s[i].matemáticas>>s[i].inglés;

s[i].sum=0;

s[i].sum+=s[i].chinese*a;

s[i].sum+ =s[ i].math*b;

s[i].sum+=s[i]

.inglés*c;

}

Qst(s,0,n-1);

for(i=n-1; i>=0 ; i--)

{

cout<

printf("%.1lf %.1lf %.1lf %.1lf\n",s[i].chino,s[i].matemáticas,s[i].inglés,s[i].sum);

}

}

}