[ Foro de C ]
Buenas, estoy atorado con un ejercicio de maximos y minimos y no lo puedo resolver. El ejercicio dice asi: Ingresar los sueldos y nombres de 30 empleados, indicar e imprimir el sueldo mayor y a quién pertenece.
Este es mi codigo:
char empleados[30];
int sueldos;
char sueldoEmpleados;
int max;
int min;
int cont;
int i;
for(i=0;i<3;i++){
printf("Ingrese el nombre del empleado: \n");
fgets(empleados,30,stdin);
printf("Ingrese su sueldo: \n");
scanf("%d",&sueldos);
fflush(stdin);
if(cont==1){
max=sueldos;
min=sueldos;
}
else if(sueldos>max){
max=sueldos;
}
else if(sueldos<min){
min=sueldos;
}
cont++;
}
printf("El sueldo maximo es de %d y pertenece al empleado %s",max, empleados);
Siempre que lo ejecuto me muestra el ultimo empleado, no me muestra a quien pertenece el sueldo maximo
hola brian
te paso una posible solución:
#include <stdio.h>
#include <string.h>
#define TAM_LISTA 5
#define LONG_EMPL 30
typedef struct s_empleado
{
char nombre[LONG_EMPL];
int sueldo;
} t_empleado;
int main(void)
{
t_empleado empleado[TAM_LISTA];
int mejor_empleado = 0;
for(int i=0; i<TAM_LISTA; i++)
{
printf("\nIngrese el nombre del empleado: \n");
fgets(empleado[i].nombre,LONG_EMPL,stdin);
setbuf(stdin,NULL);
printf("Ingrese su sueldo: \n");
scanf("%d",&empleado[i].sueldo);
setbuf(stdin,NULL);
if(empleado[i].sueldo > empleado[mejor_empleado].sueldo)
{
mejor_empleado = i;
}
}
// varios empleados pueden tener el mejor sueldo
printf("\n\nQuien más cobra en la empresa:\n\n");
for(int i=mejor_empleado; i<TAM_LISTA; i++)
{
if(empleado[i].sueldo == empleado[mejor_empleado].sueldo)
{
printf("%s cobra: %d\n\n",
empleado[i].nombre, empleado[i].sueldo);
}
}
}
suerte ;-)
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)