21-10-2019, 11:55
Hola me podria ayudar con este ejercicio
Para una carrera de autos se permite realizar 3 vueltas clasificatorias para cada uno
de los participantes.
Se pide que al finalizar las vueltas clasificatorias de 10 participantes se muestre en
pantalla ordenado por orden de largada:
NOMBRE CONDUCTOR Nº DEL AUTO MEJOR VUELTA POSICION
XXXX XX XX.XX XX
lo que hice hasta el momento fue esto:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int v[3][10],vueltas[3][10],vi[10],i,j,aux;
char nombres[30][10];
for(i=0;i<10;i++)
{
printf("Nombre del Conductor: ");
gets(nombres[i]);
printf("Ingrese Numero de Auto: ");
scanf("%d",&v[0][i]);
printf("Posicion: ");
scanf("%d",&v[1][i]);
for(j=0;j<3;j++)
{
printf("Ingrese el tiempo de la vuelta %d: ",j+1);
scanf("%d",&vueltas[j][i]);
}
vi[j]=j;
}
for(i=0;i<10;i++)
{
if(vueltas[0][i]<vueltas[1][i]) v[1][i]=1;
else if(vueltas[1][i]<vueltas[0][i]) v[2][i]=2;
else v[2][i]=3;
}
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(v[1][i]>v[1][j])
{
aux=vi[i];
vi[i]=vi[j];
vi[j]=aux;
}
}
}
for(i=0;i<10;i++)
{
printf("%s\t %d\t %d\t %d\t",nombres[vi[i]],v[0][vi[i]],v[1][vi[i]],v[2][vi[i]]);
}
return 0;
}
Para una carrera de autos se permite realizar 3 vueltas clasificatorias para cada uno
de los participantes.
Se pide que al finalizar las vueltas clasificatorias de 10 participantes se muestre en
pantalla ordenado por orden de largada:
NOMBRE CONDUCTOR Nº DEL AUTO MEJOR VUELTA POSICION
XXXX XX XX.XX XX
lo que hice hasta el momento fue esto:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int v[3][10],vueltas[3][10],vi[10],i,j,aux;
char nombres[30][10];
for(i=0;i<10;i++)
{
printf("Nombre del Conductor: ");
gets(nombres[i]);
printf("Ingrese Numero de Auto: ");
scanf("%d",&v[0][i]);
printf("Posicion: ");
scanf("%d",&v[1][i]);
for(j=0;j<3;j++)
{
printf("Ingrese el tiempo de la vuelta %d: ",j+1);
scanf("%d",&vueltas[j][i]);
}
vi[j]=j;
}
for(i=0;i<10;i++)
{
if(vueltas[0][i]<vueltas[1][i]) v[1][i]=1;
else if(vueltas[1][i]<vueltas[0][i]) v[2][i]=2;
else v[2][i]=3;
}
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(v[1][i]>v[1][j])
{
aux=vi[i];
vi[i]=vi[j];
vi[j]=aux;
}
}
}
for(i=0;i<10;i++)
{
printf("%s\t %d\t %d\t %d\t",nombres[vi[i]],v[0][vi[i]],v[1][vi[i]],v[2][vi[i]]);
}
return 0;
}