Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define ASIGNATURAS 5
- #define ESTUDIANTES 5
- void mostrar_notas(const double (*matrix)[ASIGNATURAS]){
- int estudiante,asignatura;
- for(estudiante = 0; estudiante < ESTUDIANTES; ++estudiante){
- for(asignatura = 0; asignatura < ASIGNATURAS; ++asignatura){
- printf("%.2lf \n",matrix[estudiante][asignatura]);
- }
- printf("\n");
- }
- }
- void ingresar_notas_por_estudiante(double * asignaturas){
- int asignatura;
- for(asignatura = 0; asignatura < ASIGNATURAS; ++asignatura){
- printf("\n asignatura # %d",asignatura + 1);
- scanf("%lf",&asignaturas[asignatura]);
- }
- }
- void ingresar_notas(double(*matrix)[ASIGNATURAS]){
- int estudiante;
- for(estudiante = 0; estudiante < ESTUDIANTES; ++estudiante){
- printf("\n notas para estudiante # %d \n=====================\n", estudiante + 1);
- ingresar_notas_por_estudiante(matrix[estudiante]);
- }
- }
- double suma_total_de_calificaciones_por_estudiante(const double *
- calificaciones ){
- double suma_de_calificaciones = 0;
- int calificacion;
- for(calificacion = 0; calificacion < ASIGNATURAS; ++calificacion) {
- suma_de_calificaciones += calificaciones[calificacion];
- }
- return suma_de_calificaciones;
- }
- void ordenar_estudiantes(double * calificaciones_por_estudiante){
- int calificacion,pos;
- for(calificacion = 0; calificacion < ASIGNATURAS - 1; ++calificacion){
- for(pos = calificacion + 1; pos < ASIGNATURAS; ++pos){
- if(calificaciones_por_estudiante[pos] >
- calificaciones_por_estudiante[calificacion]){
- double temp = calificaciones_por_estudiante[pos];
- calificaciones_por_estudiante[pos] = calificaciones_por_estudiante[calificacion];
- calificaciones_por_estudiante[calificacion] = temp;
- }
- }
- }
- }
- void calcular_medias_de_asignaturas(double (*matrix)[ESTUDIANTES],
- double * medias_de_asignaturas){
- double total_asignatura = 0;
- int estudiante,asignatura;
- for(asignatura = 0; asignatura < ESTUDIANTES; ++asignatura){
- for(estudiante = 0; estudiante < ESTUDIANTES; ++estudiante){
- total_asignatura += matrix[estudiante][asignatura];
- }
- medias_de_asignaturas[asignatura] = total_asignatura / ASIGNATURAS;
- total_asignatura = 0;
- }
- }
- int main( int argc, char ** argv){
- double notas[ASIGNATURAS][ESTUDIANTES];
- double total_calificaciones_por_estudiante[ESTUDIANTES];
- double medias_de_alumnos[ESTUDIANTES];
- double medias_de_asignatura[ASIGNATURAS];
- ingresar_notas(notas);
- /*vamos a utitlizar los totales de las calificaciones de
- * cadda alumno para poder ordenarlos y calular medias */
- int estudiante;
- for(estudiante = 0; estudiante < ESTUDIANTES; ++estudiante) {
- total_calificaciones_por_estudiante[estudiante] =
- suma_total_de_calificaciones_por_estudiante(notas[estudiante]);
- medias_de_alumnos[estudiante] = total_calificaciones_por_estudiante[estudiante]/ASIGNATURAS;
- }
- calcular_medias_de_asignaturas(notas,medias_de_asignatura);
- double media_total_de_clase, suma_de_medias_de_asignaturas = 0;
- int asignatura;
- for(asignatura = 0; asignatura < ASIGNATURAS; ++asignatura){
- suma_de_medias_de_asignaturas += medias_de_asignatura[asignatura];
- }
- media_total_de_clase = suma_de_medias_de_asignaturas / ASIGNATURAS;
- /*mostrar resultados*/
- printf("\n\tMEDIAS DE CADA ASIGNATURA\n");
- printf("\n=========================================================\n");
- for(asignatura = 0; asignatura < ASIGNATURAS; ++asignatura){
- printf("ASIGNATURA # %d ----> %.2lf \n",asignatura + 1,medias_de_asignatura[asignatura]);
- }
- printf("MEDIA TOTAL DE CLASE ----> %.2lf \n",media_total_de_clase);
- ordenar_estudiantes(total_calificaciones_por_estudiante);
- printf("\n\tESTUDIANTES ORDENADOS POR CALIFICACIONES \n");
- printf("\n==========================================================\n");
- for(estudiante = 0; estudiante < ESTUDIANTES; ++estudiante)
- printf(" ESTUDIANTE # %d CON ----> %.2lf \n",estudiante + 1,
- total_calificaciones_por_estudiante[estudiante]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement