Si en el mismo subprograma quiero sacar además de la deuda más alta, la más pequeña ¿cómo lo hago?. He intentado hacerlo igual que para buscar la mayor, pero no me sale.
Código C:
Ver originalvoid deuda_mayor(FILE * pf){
struct cliente max;
struct cliente cli;
struct cliente menor;
if((pf
= fopen("clientes.dat", "rb")) == NULL
) { printf("Error al abrir el fichero clientes.dat\n"); }
else{
fread(&max
,1,sizeof cli
,pf
);/*supongo que el primero es el mayor*/ fread(&cli
,1,sizeof cli
,pf
); if(max.deuda < cli.deuda)/*si es mayor que el actual lo cambia*/
max=cli;
}
fread(&menor
,1,sizeof cli
,pf
);/*supongo que el primero es el mayor*/ fread(&cli
,1,sizeof cli
,pf
); if(menor.deuda < cli.deuda)/*si es mayor que el actual lo cambia*/
menor=cli;
}
}
printf("%s %.2lf\n",max.
nombre,max.
deuda); printf("%s %.2lf\n",menor.
nombre,menor.
deuda); }
Cuando lo compilo este es el resultado:
Muestro los datos:
pepe 100.21
ana 200.74
lola 21.32
julio 25.33
Deuda mayor y menor:
ana 200.74
-0.00
¿Por qué la deuda más pequeña no me la saca?.