Tengo que hacer un programa qu me de el ganador, perdedor y los puntos de unos perros. Esto está metido en un fichero, y el programa es el que presento aquí, pero lo que ocurre que si 2 perros son ganadores o perdedores, sólo me sale un ganador o un perdedor, como puedo hacer para que me salgan los 2 perros??Gracias
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
FILE *fich;
struct conc /*estructura de 10 perros*/
{
char nombredelanimal[50];
char raza[40];
int puntosvelocidad;
int puntosobediencia;
int puntosaspecto;
}can[10];
void ganador(struct conc can[10]); /*funci¢n del ganador*/
void total(struct conc can[10]); /*funci¢n de los puntos de todo*/
void perdedor(struct conc can[10]); /*funci¢n del perdedor*/
void main(void){
int opc,i;
if((fich=fopen("a:\perros.txt","rt"))==NULL)
{
printf("ERROR");
exit(1);
}
else
{
clrscr();
for(i=0;i<=9;i++)
{
fscanf(fich,"%s",can[i].nombredelanimal);
fscanf(fich,"%s",can[i].raza);
fscanf(fich,"%d",&can[i].puntosvelocidad);
fscanf(fich,"%d",&can[i].puntosobediencia);
fscanf(fich,"%d",&can[i].puntosaspecto);
}
fclose(fich);
do
{
clrscr();
printf("\n\n\n\n*/**/*/**/*/**/*/**/ BIENVENIDO AL CONCURSO DE LOS PERROS /**/*/**/*/**/*/**/*\n");
printf("\n -----ELIJA UNA OPCIàN-----\n\n\n");
printf("\n 1.- El animal con m s puntos del concurso\n");
printf("\n 2.- Puntos de cada animal en velocidad, obedencia y aspecto\n");
printf("\n 3.- El animal con menos puntos\n");
printf("\n 4.- Salir del concurso\n");
scanf("%d",&opc);
switch(opc)
{
case 1:
ganador(can);
getch();
break;
case 2:
total(can);
getch();
break;
case 3:
perdedor(can);
getch();
break;
case 4:
exit(1);
break;
}
}
while(opc!=4);
}
}
void ganador(struct conc can[10])
{
clrscr();
int i,suma,mayor=0,pmayor;
for(i=0;i<=9;i++)
{
suma=0;
suma=can[i].puntosvelocidad+can[i].puntosobediencia+can[i].puntosaspecto;
if (mayor<suma)
{
mayor=suma;
pmayor=i;
}
}
/* for(i=0;i<=9;i++)
{
if( */
printf("\n\n\n\n\n\n\n\n El perro con m s puntos es %s",can[pmayor].nombredelanimal);
}
void total(struct conc can[10])
{
clrscr();
int i;
for(i=0;i<=9;i++)
printf(" \n%s\n tiene %d puntos en velocidad, %d puntos en obediencia y %d puntos por aspecto",can[i].nombredelanimal,can[i].puntosvelocidad,can[i].puntosobediencia,can[i].puntosaspecto);
}
void perdedor(struct conc can[10])
{
clrscr();
int i,suma,menor=1000,pmenor;
for(i=0;i<=9;i++)
{
suma=0;
suma=can[i].puntosvelocidad+can[i].puntosobediencia+can[i].puntosaspecto;
if (menor>suma)
{
menor=suma;
pmenor=i;
}
}
printf("\n\n\n\n\n\n\n\n El perdedor es %s",can[pmenor].nombredelanimal);
}