elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con función y struct, socorro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con función y struct, socorro  (Leído 877 veces)
laurinhabig0

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Ayuda con función y struct, socorro
« en: 8 Noviembre 2017, 19:11 »

Muy buenas!! Llevo dos días desesperado tratando de encontrar la solución a mi problema y no hay manera, a ver si podéis echarme una mano. Resulta que en un ejercicio que tengo que hacer para la uni me pide (además de muchas otras cosas, pero que se basean en este problema), lo siguiente: se trata de un programa para gestionar los tiempos de x ciclistas en una carrera blablabla... el "problema" radica en que me pide que almacene diversos datos de cada ciclista en un struct, a su vez contenido en un vector de structs. Pero me pide que lo haga con una función que se encuentre fuera del main. Mi duda es la siguiente, al crear esa función, como hago para indicarle que los datos que lea los almacene en el struct correspondiente a la posición que yo considere del vector de structs? No tengo mucha idea de como indicárselo entre los paréntesis (como veréis puse struct *infocorredor) pero fue fruto de horas de desesperación y 13213 horas de búsqueda por internet sin éxito) Disculpad si no utilizo un lenguaje muy técnico o digo alguna barbaridad pero estoy empezando en esto, no os paséis :-\

Os dejo por aquí el código, que evidentemente contiene errores, a ver si pilláis por donde van mis intenciones:

Código:
#include <stdio.h>

typedef struct infocorredor{
int dorsal;
char nome[20];
int abandonos[4];
};

void introducirdatos(struct *infocorredor){ //no me peguéis por lo que viene a partir de aquí
printf("Introduce dorsal:\n");
scanf("%d\n",&(*infocorredor.dorsal));
printf("Introduce nome:\n");
scanf("%s\n",&(*infocorredor.nome));
    for(int i=0;i<4;i++){
printf("Introduce 0 se houbo abandono:\n");
scanf("%d\n",&(*infocorredor.abandonos[i]));
    }
}

int main() {
    int i;
    int numcorr;
    infocorredor corredor[numcorr];

    printf("Introduce o número de corredores que participan:\n");
    scanf("%d\n",&numcorr);

    for(i=0;i<numcorr;i++){
introducirdatos(&infocorredor); //aquí una de mis dudas, como "introduzco" el struct en la función?
        corredor[i]=infocorredor;
    }


En línea

Gallu

Desconectado Desconectado

Mensajes: 247



Ver Perfil
Re: Ayuda con función y struct, socorro
« Respuesta #1 en: 10 Noviembre 2017, 12:39 »

Hola, yo haría lo siguiente, no lo he probado eso si, puede haber errores, échale un ojo

Código
  1. #include <stdio.h>
  2.  
  3. typedef struct{
  4. int dorsal;
  5. char nome[20];
  6. int abandonos[4];
  7. }Corredor;
  8.  
  9. void introducirDatosCorredor(Corredor * runner){ //por favor usa nombres de variable y funciones más descriptivos, intenta mantener también una buen identación
  10.  
  11. printf("Introduce dorsal:\n");
  12. scanf("%d\n",&(*runner->dorsal));
  13.  
  14. printf("Introduce nome:\n");
  15. scanf("%s\n",&(*runner->nome));
  16.  
  17. for(int i=0;i<4;i++){
  18. printf("Introduce 0 se houbo abandono:\n");
  19. scanf("%d\n",&(*runner->abandonos[i]));
  20. }
  21.  
  22. }
  23.  
  24. int main() {
  25.    int i;
  26.    int numcorr ;
  27.    Corredor corredores[numcorr];
  28.  
  29.    printf("Introduce o número de corredores que participan:\n");
  30.    scanf("%d\n",&numcorr);
  31.  
  32.    for(i=0;i<numcorr;i++){
  33. Corredor corredorAux;
  34. introducirDatosCorredor(&corredorAux);  
  35.        corredor[i]= corredorAux;
  36.    }
  37. }
  38.  


En línea

Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines