Se me ha ocurrido hacer esto, pero me imprime la deuda más alta 2 veces.
Código C:
Ver originalvoid deuda_mayor(FILE * pf){
struct cliente max,menor;
struct cliente cli;
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)
max=cli;
}
}
printf("%s %.2lf\n",max.
nombre,max.
deuda);
if((pf
= fopen("clientes.dat", "rb")) == NULL
) { printf("Error al abrir el fichero clientes.dat\n"); }
else{
fread(&menor
,1,sizeof cli
,pf
);/*supongo que el primero es el mayor*/ fread(&cli
,1,sizeof cli
,pf
); if(menor.deuda < cli.deuda)
menor=cli;
}
}
printf("%s %.2lf\n",menor.
nombre,menor.
deuda); }
Ya no se qué hacer, ¿cómo lo harías tu?, he probado todas las maneras posibles y nada.