Foros del Web » Programación para mayores de 30 ;) » Programación General »

Como Pueden Salir 2?????urgente

Estas en el tema de Como Pueden Salir 2?????urgente en el foro de Programación General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/05/2004, 14:04
 
Fecha de Ingreso: abril-2004
Ubicación: badajoz
Mensajes: 11
Antigüedad: 20 años, 7 meses
Puntos: 0
Como Pueden Salir 2?????urgente

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);
}
  #2 (permalink)  
Antiguo 21/05/2004, 05:17
 
Fecha de Ingreso: enero-2004
Mensajes: 396
Antigüedad: 20 años, 10 meses
Puntos: 0
Claro, es que el progrma esta pensado para que devuelva solo un gnador o erpdedor.

Para que funcione como tu quieres tendras que reprogramarlo, de forma, que como dato de salida devuelva un Array en el cual esten contenidos todos los perros que cumplan con los requisitos que pides.... y ahora mismo estas devolviendo un string.,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:31.