Ejemplo de un arreglo de doble subindice
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | #include <stdio.h> #define ESTUDIANTES 3 #define EXAMENES 4 /* prototipos de las funciones */ int minimo( const int calificaciones[][ EXAMENES ], int alumnos, int examenes ); int maximo( const int calificaciones[][ EXAMENES ], int alumnos, int examenes ); double promedio( const int estableceCalif[], int examenes ); void despliegaArreglo( const int calificaciones[][ EXAMENES ], int alumnos, int examenes ); /* la función main comienza la ejecución del programa */ int main() { int estudiante; /* contador de estudiantes */ /* inicializa las calificaciones para tres estudiantes (filas) */ const int calificacionesEstudiantes[ ESTUDIANTES ][ EXAMENES ] = { { 77, 68, 86, 73 }, { 96, 87, 89, 78 }, { 70, 90, 86, 81 } }; /* muestra el arreglo calificacionesEstudiantes */ printf( "El arreglo es:n" ); despliegaArreglo( calificacionesEstudiantes, ESTUDIANTES, EXAMENES ); /* determina el valor más pequeño y el valor más grande de las calificaciones */ printf( "nnCalificacion mas baja: %dnCalificacion mas alta: %dn", minimo( calificacionesEstudiantes, ESTUDIANTES, EXAMENES ), maximo( calificacionesEstudiantes, ESTUDIANTES, EXAMENES ) ); /* calcula el promedio de calificaciones de cada estudiante */ for ( estudiante = 0; estudiante < ESTUDIANTES; estudiante++ ) { printf( "El promedio de calificacion del estudiante %d es %.2fn", estudiante, promedio( calificacionesEstudiantes[ estudiante ], EXAMENES ) ); } /* fin de for */ return 0; /* indica terminación exitosa */ } /* fin de main */ /* Encuentra la calificación mÃÂnima */ int minimo( const int calificaciones[][ EXAMENES ], int alumnos, int examenes ) { int i; /* contador de estudiantes */ int j; /* contador de examenes */ int califBaja = 100; /* inicializa a la calificación más alta posible */ /* ciclo a través de las filas de calificaciones */ for ( i = 0; i < alumnos; i++ ) { /* ciclo a través de las columnas de calificaciones */ for ( j = 0; j < examenes; j++ ) { if ( calificaciones[ i ][ j ] < califBaja ) { califBaja = calificaciones[ i ][ j ]; } /* fin de if */ } /* fin del for interno */ } /* fin del for externo */ return califBaja; /* devuelve la calificación mÃÂnima */ } /* fin de la función main */ /* Encuentra la calificación más alta */ int maximo( const int calificaciones[][ EXAMENES ], int alumnos, int examenes ) { int i; /* contador de estudiantes */ int j; /* contador de examenes */ int califAlta = 0; /* inicializa a la calificación más baja posible */ /* ciclo a través de las filas de calificaciones */ for ( i = 0; i < alumnos; i++ ) { /* ciclo a través de las columnas de calificaciones */ for ( j = 0; j < examenes; j++ ) { if ( calificaciones[ i ][ j ] > califAlta ) { califAlta = calificaciones[ i ][ j ]; } /* fin de if */ } /* fin del for interno */ } /* fin del for externo */ return califAlta; /* devuelve la calificación máxima */ } /* fin de la función maximo */ /* Determina la calificación promedio para un estudiante en especial */ double promedio( const int conjuntoDeCalificaciones[], int examenes ) { int i; /* contador de exáenes */ int total = 0; /* suma de las calificaciones del examen */ /* total de calificaciones de un estudiante */ for ( i = 0; i < examenes; i++ ) { total += conjuntoDeCalificaciones[ i ]; } /* fin de for */ return ( double ) total / examenes; /* promedio */ } /* fin de la función promedio */ /* Imprime el arreglo */ void despliegaArreglo( const int calificaciones[][ EXAMENES ], int alumnos, int examenes ) { int i; /* contador de estudiantes */ int j; /* contador de examenes */ /* muestra el encabezado de las columnas */ printf( " [0] [1] [2] [3]" ); /* muestra las calificaciones en forma tabular */ for ( i = 0; i < alumnos; i++ ) { /* muestra la etiqueta de la fila */ printf( "ncalificacionesEstudiantes[%d] ", i ); /* muestra las calificaciones de un estudiante */ for ( j = 0; j < examenes; j++ ) { printf( "%-5d", calificaciones[ i ][ j ] ); } /* fin del for interno */ } /* fin del for externo */ } /* fin de la función despliegaArreglo */ |
¿Has encontrado algún error? ¿Tienes la solución? Dejame tu correción ;-)
Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.
Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:
- Si es lenguaje C <code lang="c">Código en C</code>
- Si es lenguaje Pascal <code lang="pascal">Aquí dentro el código de Pascal</code>.
De esta manera el código coloreas el código.
Otro punto importante para muchos que crees que te he ignorado: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:Me reservo el derecho de alterar, publicar o no los comentarios así como también cambiar mis condiciones en el momento que yo lo requiera.
¿Si estas de acuerdo? Adelante! que ya te he quitado bastante tiempo leyendo esta basura :)