Dev - C++ - Ejercicio en C no llego a entender Struct, vectores.

   
Vista:

Ejercicio en C no llego a entender Struct, vectores.

Publicado por Rodri (2 intervenciones) el 06/11/2015 01:19:48
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
Garcia

2
Triestre

3
Hanson

4
Donan

5
Alvarez

6
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)

(comp: competencia)


Nadador1 comp1= 240.00 comp2=292.00 comp3=214.00 comp4=292.00

Nadador2 comp1=250.00 comp2=174.00 comp3=160.00 comp4=224.00

Nadador3 comp1=289.00 comp2=261.00 comp3=184.00 comp4=280.00

Nadador4 comp1=253.00 comp2=237.00 comp3=268.00 comp4=192.00

Nadador5 comp1=254.00 comp2=253.00 comp3=159.00 comp4=161.00

Nadador6 comp1=151.00 comp2=233.00 comp3=198.00 comp4=199.00




Construir solo las funciones que indican 'desarrollar'


---


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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); 	//no desarrollar
cargarTiempo(matTiem);	//no desarrollar
 
cargarMejorTiempo(vecNad,matTiem);	//desarrollar (buscar el minimo tiempo)
 
inicializaPos(vecPos);	//no desarrollar
 
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);		//no desarrollar
 
return 0;}
 
}


estaria muy agredecido si pudieran ayudarme !
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ejercicio en C no llego a entender Struct, vectores.

Publicado por Banguu (2 intervenciones) el 10/11/2015 01:11:22
es lo q hice por ahora :s

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#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)
{
    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
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar