Advertisement
Guest User

Untitled

a guest
May 25th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define ASIGNATURAS 5
  4. #define ESTUDIANTES 5
  5.  
  6. void mostrar_notas(const double (*matrix)[ASIGNATURAS]){
  7. int estudiante,asignatura;
  8. for(estudiante = 0; estudiante < ESTUDIANTES; ++estudiante){
  9. for(asignatura = 0; asignatura < ASIGNATURAS; ++asignatura){
  10. printf("%.2lf \n",matrix[estudiante][asignatura]);
  11. }
  12. printf("\n");
  13. }
  14. }
  15.  
  16.  
  17. void ingresar_notas_por_estudiante(double * asignaturas){
  18. int asignatura;
  19. for(asignatura = 0; asignatura < ASIGNATURAS; ++asignatura){
  20. printf("\n asignatura # %d",asignatura + 1);
  21. scanf("%lf",&asignaturas[asignatura]);
  22. }
  23. }
  24.  
  25. void ingresar_notas(double(*matrix)[ASIGNATURAS]){
  26. int estudiante;
  27. for(estudiante = 0; estudiante < ESTUDIANTES; ++estudiante){
  28. printf("\n notas para estudiante # %d \n=====================\n", estudiante + 1);
  29. ingresar_notas_por_estudiante(matrix[estudiante]);
  30. }
  31. }
  32.  
  33. double suma_total_de_calificaciones_por_estudiante(const double *
  34. calificaciones ){
  35. double suma_de_calificaciones = 0;
  36. int calificacion;
  37. for(calificacion = 0; calificacion < ASIGNATURAS; ++calificacion) {
  38. suma_de_calificaciones += calificaciones[calificacion];
  39. }
  40. return suma_de_calificaciones;
  41. }
  42.  
  43. void ordenar_estudiantes(double * calificaciones_por_estudiante){
  44. int calificacion,pos;
  45. for(calificacion = 0; calificacion < ASIGNATURAS - 1; ++calificacion){
  46. for(pos = calificacion + 1; pos < ASIGNATURAS; ++pos){
  47. if(calificaciones_por_estudiante[pos] >
  48. calificaciones_por_estudiante[calificacion]){
  49. double temp = calificaciones_por_estudiante[pos];
  50. calificaciones_por_estudiante[pos] = calificaciones_por_estudiante[calificacion];
  51. calificaciones_por_estudiante[calificacion] = temp;
  52. }
  53. }
  54. }
  55. }
  56.  
  57.  
  58. void calcular_medias_de_asignaturas(double (*matrix)[ESTUDIANTES],
  59. double * medias_de_asignaturas){
  60. double total_asignatura = 0;
  61. int estudiante,asignatura;
  62.  
  63. for(asignatura = 0; asignatura < ESTUDIANTES; ++asignatura){
  64. for(estudiante = 0; estudiante < ESTUDIANTES; ++estudiante){
  65. total_asignatura += matrix[estudiante][asignatura];
  66. }
  67. medias_de_asignaturas[asignatura] = total_asignatura / ASIGNATURAS;
  68. total_asignatura = 0;
  69. }
  70. }
  71.  
  72.  
  73. int main( int argc, char ** argv){
  74. double notas[ASIGNATURAS][ESTUDIANTES];
  75. double total_calificaciones_por_estudiante[ESTUDIANTES];
  76. double medias_de_alumnos[ESTUDIANTES];
  77. double medias_de_asignatura[ASIGNATURAS];
  78.  
  79. ingresar_notas(notas);
  80.  
  81. /*vamos a utitlizar los totales de las calificaciones de
  82. * cadda alumno para poder ordenarlos y calular medias */
  83. int estudiante;
  84. for(estudiante = 0; estudiante < ESTUDIANTES; ++estudiante) {
  85. total_calificaciones_por_estudiante[estudiante] =
  86. suma_total_de_calificaciones_por_estudiante(notas[estudiante]);
  87. medias_de_alumnos[estudiante] = total_calificaciones_por_estudiante[estudiante]/ASIGNATURAS;
  88. }
  89.  
  90. calcular_medias_de_asignaturas(notas,medias_de_asignatura);
  91. double media_total_de_clase, suma_de_medias_de_asignaturas = 0;
  92. int asignatura;
  93. for(asignatura = 0; asignatura < ASIGNATURAS; ++asignatura){
  94. suma_de_medias_de_asignaturas += medias_de_asignatura[asignatura];
  95. }
  96. media_total_de_clase = suma_de_medias_de_asignaturas / ASIGNATURAS;
  97.  
  98. /*mostrar resultados*/
  99. printf("\n\tMEDIAS DE CADA ASIGNATURA\n");
  100. printf("\n=========================================================\n");
  101. for(asignatura = 0; asignatura < ASIGNATURAS; ++asignatura){
  102. printf("ASIGNATURA # %d ----> %.2lf \n",asignatura + 1,medias_de_asignatura[asignatura]);
  103. }
  104.  
  105. printf("MEDIA TOTAL DE CLASE ----> %.2lf \n",media_total_de_clase);
  106.  
  107. ordenar_estudiantes(total_calificaciones_por_estudiante);
  108. printf("\n\tESTUDIANTES ORDENADOS POR CALIFICACIONES \n");
  109. printf("\n==========================================================\n");
  110. for(estudiante = 0; estudiante < ESTUDIANTES; ++estudiante)
  111. printf(" ESTUDIANTE # %d CON ----> %.2lf \n",estudiante + 1,
  112. total_calificaciones_por_estudiante[estudiante]);
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement