Está en la página 1de 3

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:

/* Problema 1: Matrz de registros


En una matriz, cada fila representa el nmero de un departamento de una empresa. Cada
los empleados de ese departamento: nombre, edad, salario. Asuma que el mximo de empl
3 departamentos. Si hay menos de 4 empleados en un departamento, el nombre en cada po
posiciones vacas estn al final de cada fila. Construya un segmento de programa que
de mayor salario y su respectivo nombre */
#include <stdio.h>
#include <string.h>
int main() {
// Declaracin de la estructura de registro de la persona
struct persona {
char
nombre[10];
int
edad;
double salario;
};
// Declaracin de variables simples
int i; // Contador de departamentos
int j; // Contador de empleado por departamento
int fila; // almacena el departamento donde est el empleado de mayor salario
int columna; // almacena el empleado de mayor salario del departamento
int pausa; // almacena la pausa para observar la ejecucin
double salario_mayor; // almacena el mayor salario localizado
// Declaracin de la matriz de registros
struct persona empresa[4][5];
// Carga esttica de los valores de entrada de la matriz
strcpy(empresa[0][0].nombre, "Juan");
empresa[0][0].edad = 25;
empresa[0][0].salario = 234.4;
strcpy(empresa[0][1].nombre, "Juano");
empresa[0][1].edad = 35;
empresa[0][1].salario = 235.4;
strcpy(empresa[0][2].nombre, "Sapito");
empresa[0][2].edad = 45;
empresa[0][2].salario = 123.4;
strcpy(empresa[0][3].nombre, "Rana");
empresa[0][2].edad = 25;
empresa[0][2].salario = 123.4;
strcpy(empresa[0][4].nombre, "Loca");
empresa[0][4].edad = 45;
empresa[0][4].salario = 123.4;
strcpy(empresa[1][0].nombre, "Perro");
empresa[1][0].edad = 27;
empresa[1][0].salario = 1234.4;
strcpy(empresa[1][1].nombre, "Vaca");

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:

empresa[1][1].edad = 28;
empresa[1][1].salario = 124.4;
strcpy(empresa[1][2].nombre, "fin");
empresa[1][2].edad = 0;
empresa[1][2].salario = 0.0;
strcpy(empresa[1][3].nombre, "fin");
empresa[1][3].edad = 0;
empresa[1][3].salario = 0.0;
strcpy(empresa[1][4].nombre, "fin");
empresa[1][4].edad = 0;
empresa[1][4].salario = 0.0;
strcpy(empresa[2][0].nombre, "fin");
empresa[2][0].edad = 0;
empresa[2][0].salario = 0.0;
strcpy(empresa[2][1].nombre, "fin");
empresa[2][1].edad = 0;
empresa[2][1].salario = 0.0;
strcpy(empresa[2][2].nombre, "fin");
empresa[2][2].edad = 0;
empresa[2][2].salario = 0.0;
strcpy(empresa[2][3].nombre, "fin");
empresa[2][3].edad = 0;
empresa[2][3].salario = 0.0;
strcpy(empresa[2][4].nombre, "fin");
empresa[2][4].edad = 0;
empresa[2][4].salario = 0.0;
strcpy(empresa[3][0].nombre, "plomo");
empresa[3][0].edad = 5;
empresa[3][0].salario = 3000.01;
strcpy(empresa[3][1].nombre, "fin");
empresa[3][1].edad = 0;
empresa[3][1].salario = 0.0;
strcpy(empresa[3][2].nombre, "fin");
empresa[3][2].edad = 0;
empresa[3][2].salario = 0.0;
strcpy(empresa[3][3].nombre, "fin");
empresa[3][3].edad = 0;
empresa[3][3].salario = 0.0;
strcpy(empresa[3][4].nombre, "fin");
empresa[3][4].edad = 0;
empresa[3][4].salario = 0.0;

111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133: }

// Recorrer la matrz buscando el empleado con mayor salario


salario_mayor = 0;
for (i=0; i<4; i++) {
j=0;
while ((j<5) && (empresa[i][j].nombre!="fin")) {
if (salario_mayor<empresa[i][j].salario) {
// Se encontr un nuevo empleado con mayor salario, almacenar los datos
salario_mayor = empresa[i][j].salario;
fila = i;
columna = j;
}
j++;
}
}
// Escribir los datos del salario mayor
printf("El departamento del empleado del mayor salario es: %d\n", fila);
printf("El nombre del empleado del mayor salario es: %s", empresa[fila][columna].nombre);
pausa = getchar();
return 0;

También podría gustarte