hola, no sabia donde recurrir, ya q mi profesor no nos dijo muy bien como hacer este ejercicio... quizá alguien de acá si, me estarían ayudando demasiado. :D
me cuesta mucho sin ejemplos :c
un entrenador de natacion debe elegir sus mejores nadadores para participar de una competencia internacional. Para ello, le solicita a Ud. un
programa que le permita obtener una informacion respecto de sus tiempos, considerando por cada nadador un conjunto de datos, tipo struct:
struct datos {ID de tipo int
Apellido de tipo char[15]
MejorTiempo de tipo float};
Al construir el programa, los datos de los nadadores se almacenan en un vector de N struct sin el mejor tiempo. Ejemplo (para N=6):
1 2 3 4 5 6
Garcia Triestre Hanson Donan Alvarez Diaz
Ademas por cada nadador se almacenan sus tiempos de las ultimas 4 competencias en una tabla de N filas por 4 columnas. Ejemplo (para N=6)
Comp1 Comp2 Comp3 Comp4
Nadador1 240.00 292.00 214.00 292.00
Nadador2 250.00 174.00 160.00 224.00
Nadador3 289.00 261.00 184.00 280.00
Nadador4 253.00 237.00 268.00 192.00
Nadador5 254.00 253.00 159.00 161.00
Nadador6 151.00 233.00 198.00 199.00
Construir solo las funciones que indican 'desarrollar'
---
main(){
struct datos vecNad[N]; //vecNadd es el vector de datos de nadadores;
float t, matTiem[N][4]; //matTiem es la tabla de tiempos;
int vecPos[N], cantidad=0;
cargarNad(vecNad);
cargarTiempo(matTiem);
cargarMejorTiempo(vecNad,matTiem); //desarrollar (buscar el minimo tiempo)
inicializaPos(vecPos);
leer(&t); //desarrollar
supera(vecNad, vecPos, t, &cantidad); //desarrollar, almacenará en el array vecPos las posiciones de los struct cuyos
tiempos sean mejor a 't' y almacena en cantidad un entero indicando cuántos struct de vecNad speran a t.
emitir(vecNad, vecPos, cantidad); //desarrollar, solo emite los struct con mejores tiempos
ordenaxnombre(vecNad,N) //desarrollar, ordena por apellido de nadador
emite(vecNad);
return 0;}
}
estaria muy agredecido si pudieran ayudarme !
Tu problema o tarea es demasiado fácil, creo que no has puesto atención en tu clase , muestra el código que ya llevas y te ayudaremos de otro modo no podrémos hacer tú tarea.
esto es lo q hice por ahora :s
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define N 6
struct datos
{
int id;
char apellido[20];
float mejorTiempo;
};
main(){
struct datos vecNad[N]; //vecNad es el vector de datos de nadadores
float t, matTiem[N][4]; //matTiem es la tabla de tiempos
int vecPos[N], cantidad=0;
cargarNad(vecNad); //no desarrollar
cargarTiempo(matTiem); //no desarrollar
cargarMejorTiempo(vecNad,matTiem); //desarrollar (buscar minimo)
inicializaPos(vecPos); //no desarrollar
leer(&t); //desarrollar (?)
supera(vecNad, vecPos, t, &cantidad); /*Desarrollar, almacenara en el array vecPos las posiciones de los
struct cuyos tiempos sean mejor a 't' y almacena en cantidad un entero indicando cuantos struct de vecNad superan a 't'.*/
emitir(vecNad, vecPos, cantidad); //Desarrollar, solo emite los struct con mejores tiempos
ordenaxnombre(vecNad,N); //Desarrollar, ordena por apellido de nadador
emite(vecNad); //no desarrollar
return 0;
}
cargarNad(vecNad) ///me tira error linea 86,88 y 101, "error subscripted value is neither array nor pointer nor vector"
{
int i;
for(i = 0; i < N; i++)
{
printf("Ingresar id");
scanf("%d",&vecNad[i].id);
printf("Ingresar apellido");
scanf("%c",&vecNad[i].apellido);
}
}
cargarTiempo(matTiem)
{
int minimo=0,i,j;
for(i=0;i<N;i++)
{
for(j=0;j<=4;j++)
{
printf("Ingresar Tiempo del nadador%d\n competencia%d\n", i,j);
scanf("%d",&matTiem[i][j]);
}
}
}
cargarMejorTiempo(vecNad,matTiem)
{
int matTiem[N][4];
int i,minimo=matTiem[0][0];
for(i = 0; i < N; i++)
{
for(j=0;j <= 4; j++)
{
if(matTiem[i][j]<minimo)
{
minimo=matTiem[i][j];
}
}
}
}
void leer(float *time) ///esta bien??
{
printf("Ingresar tiempo: \n");
scanf("%f", t);
*time=t;
}
supera(vecNad, vecPos, t, *cant) ///No entendi
{
for(i=0;i<N;i++)
{
if(vecPos[i]<t)
{
vecPos[i]=vecPos[i]+t
}
}
asdasdasdasd
}
emitir(vecNad, vecPos, cantidad) ///No se como hacer
{
}
ordenaxnombre(vecNad,N) ///no se si está bien
{
struct vecNad[N];
struct datos aux;
int i,j,r;
for(i=0;i<=20;i++)
for(j=i+1;j<50;j++)
{
r=strcmp(vecNad[i].apellido, vecNad[j].apellido);
aux = vecNad[i];
vecNad[i] = vecNad[j];
vecNad[j] = aux
}
}