UTNianos

Versión completa: Proyecto Informatica 1
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola a todos! La verdad es que vengo medio perdido con informatica y me pidieron hacer un programa que simule una clasificacion de una carrera de autos donde tengo 58 autos. Tengo que ingresar el numero del auto, el nombre del piloto, la escuderia y el tiempo que tardo en dar la vuelta. al cabo de la clasificacion, debo ordenar todos los datos de mayor a menor teniendo en cuenta el tiempo que tardo en dar la vuelta, los primeros 30 son clasificados, los otros 20 son suplentes y los ultimos 8 descalificados.

Ademas si pasa dos o mas veces un mismo auto y mejora su tiempo debo actualizar la base de datos de ese auto...
Voy escribiendo algo... lo dejo mas abajo:

#define CORREDORES 58
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>

struct clasif
{
char nombre [30];
char escuderia [20];
int numauto;
int posicion;
float tiempo;
};

int main (void)
{
struct clasif a[CORREDORES];
int i=0;
char opcion;

system ("clear");

printf ("Para ingresar los datos de un nuevo auto oprima n o N\n");
scanf ("%c",&opcion);

while ((i<CORREDORES)&&(opcion='n')||(opcion='N'))
{
a[i].posicion=i;

printf ("Ingrese el numero del auto\n");
scanf ("%d",&a[i].numauto);

fgets (a[i].nombre,30,stdin);
printf ("Ingrese el nombre del piloto\n");
fgets (a[i].nombre,30,stdin);

printf ("Ingrese la escuderia del auto\n");
fgets (a[i].escuderia,20,stdin);

printf ("Ingrese el tiempo\n");
scanf ("%d",&a[i].tiempo);

i++;
}

return 0;
}

aca tengo el problema que no me pide ingresar N o n devuelta para ingresar otro auto y direcamente me pide ingresarlo. ademas no se como hacer para que me ordene todo y me actualize la base de autos en caso de que el piloto pase devuelta.

Gracias
Bueno, vamos de a poco.

Había escrito
Cita:En primer lugar, la estructura que deberías definir es la del auto. Imaginate que haces una tabla de excel, las propiedades que querés considerar son las columnas, y cada objeto que querés clasificar son las filas.
pero claramente ya lo pensaste así.

Por otro lado me parece que lo más cómodo va a ser usar memoria dinámica y cargar los autos en un arreglo de punteros, para que te sea más fácil ordenar después y llegado el caso buscar si un auto ya está cargado.
Es que tenés que poner el pedido de ingreso de dato dentro de un lazo. Probablemente un while(1).
Para ordenar, básicamente tenés que recorrer la lista y encontrar su lugar. Como vas ingresando de a uno es más fácil.

Coincido con leibniz en lo del vector de punteros. La lista propiamente la tenés en "struct clasif a[]", pero el orden lo tenés en otro vector "struct clasif *lista[58]", de manera que movés los elementos de este último vector.
URLs de referencia