Está en la página 1de 2

1 /**

2 * Segundo Examen Parcial Lapso 2013-1 (Fecha: 14/06/2014)


3 * Ejercicio No 2 - La biblioteca de la Universidad
4 */
5 #include <stdio.h>
6 #include <string.h>
7 #include <conio.h>
8 #define NUM_CARRERAS 14
9 #define NUM_MATERIAS 25 // Maximo de materias del semestre
10
11 void main()
12 {
13 char asignatura[NUM_MATERIAS][50], carrera[NUM_CARRERAS][35];
14 int alumnos[NUM_CARRERAS], consultas[NUM_MATERIAS][NUM_CARRERAS], num_asig;
15 //char asignatura[25][50], carrera[14][35];
16 //int alumnos[14], consultas[25][14], num_asig;
17
18 /**
19 * Validar cantidad de asignaturas
20 */
21 do{
22 printf("\nIngrese el numero de asignaturas: ");
23 scanf("%d", &num_asig);
24 }while(num_asig < 1 || num_asig > NUM_MATERIAS); // num_asig < 1 || num_asig > 25
25
26 /**
27 * a) Realizar la carga en los arreglos correspondientes, unidimensionales(asignaturas,
carreras, cantidad de
28 * alumnos) y bidimensional (cantidad de consultas)
29 */
30 int i,j;
31
32 for(i=0; i < num_asig; i++)
33 {
34 printf("\nIngrese la asignatura %d: ", i+1);
35 fflush(stdin);
36 gets(asignatura[i]);
37 }
38
39 for(j=0; j < NUM_CARRERAS; j++)
40 {
41 printf("\nIngrese la carrera %d: ", j+1);
42 fflush(stdin);
43 gets(carrera[j]);
44
45 printf("\nIngrese la cantidad de alumnos: ");
46 scanf("%d", &alumnos[j]);
47 }
48
49 for(i=0; i< num_asig; i++)
50 {
51 for(j=0; j < NUM_CARRERAS; j++)
52 {
53 printf("\nIngrese la cantidad de consultas de los alumnos de %s para la
asignatura %s: ", carrera[j], asignatura[i]);
54 scanf("%d", &consultas[i][j]);
55 }
56 }
57
58 /**
59 * b) Calcule y guarde en un nuevo arreglo el promedio de consultas efectuadas en cada
una de las asignaturas.
60 * Excluya para el cálculo los casos en que no hubo consulta. Determine y muestre a
que asignatura(s) le
61 * corresponde el mayor promedio de consultas
62 */
63
64 int promedio[NUM_MATERIAS], acum, cont, mayor=0;
65
66 for(i=0; i < num_asig; i++)
67 {
68 acum=0; cont=0;
69 for(j=0; j < NUM_CARRERAS; j++)
70 {
71 if(consultas[i][j]>0)
72 {
73 acum += consultas[i][j];
74 cont++;
75 }
76 }
77
78 promedio[i] = acum/cont;
79
80 if(promedio[i] > mayor)
81 {
82 mayor = promedio[i];
83 }
84 }
85
86 printf("\n\nAsignaturas con mayor promedio de consultas: ");
87 for(i=0; i < num_asig; i++)
88 {
89 if(promedio[i] == mayor)
90 {
91 printf("\n%s (Promedio %d consultas)", asignatura[i], mayor);
92 }
93 }
94
95 /**
96 * c) Busque la asignatura Computación I y muestre la relación (Número de consultas /
Número de alumnos),
97 * para las carreras Mecánica e Industrial, considerando que su ubicación
corresponde como esta dado en el ejemplo.
98 * Mecánica (j=1), Industrial(j=13 o j=NUM_CARRERAS-1)
99 */
100
101 int enc=0;
102 float relacion1, relacion2;
103 for(i=0; i < num_asig; i++)
104 {
105 if(strcmpi(asignatura[i], "Computacion I")==0)
106 {
107 relacion1 = (float) consultas[i][1] / alumnos[1];
108 relacion2 = (float) consultas[i][NUM_CARRERAS-1] / alumnos[NUM_CARRERAS-1];
109 printf("\n\nRelacion (No consultas / No alumnos) para Mecanica: %.2f",
relacion1);
110 printf("\n\nRelacion (No consultas / No alumnos) para Industrial: %.2f",
relacion2);
111 enc=1;
112 break;
113 }
114 }
115
116 if(enc==0)
117 {
118 printf("\nNo se encontro la asignatura Computacion I");
119 }
120
121 getch();
122 }
123

También podría gustarte