Resultados 1 al 5 de 5

Hilo: Problema subrutina en C

  1. #1
    Registro
    Jul 2016
    Ubicación
    Rosario, Argentina
    Posts
    96
    Nivel
    Universidad (Ingeniería)
    ¡Gracias!
    34 (31 msgs.)

    Predeterminado Problema subrutina en C

    Hola , tengo un problema para declarar una subrutina que tenga como parámetro de entrada una estructura de datos. En el programa principal tengo definida la estructura de datos de la siguiente manera:



    struct reg{
    int a;
    float b;
    char name[50];
    };
    struct reg a[10];

    Mi duda esta en como es la sintaxis para declarar una funcion o subrutina que tenga como entrada la variable 'a', y que me permita éntrale datos por el teclado.

  2. #2
    Registro
    Mar 2015
    Ubicación
    Lujan Buenos Aires Argentina
    Posts
    3 794
    Nivel
    Universidad (Ingeniería)
    Artículos de blog
    39
    ¡Gracias!
    1 770 (1 584 msgs.)

    Predeterminado Re: Problema subrutina en C

    Puedes mirar como lo hacen en este hilo....http://forum.lawebdefisica.com/threa...ramación-en-C

  3. #3
    Registro
    Jul 2016
    Ubicación
    Rosario, Argentina
    Posts
    96
    Nivel
    Universidad (Ingeniería)
    ¡Gracias!
    34 (31 msgs.)

    Predeterminado Re: Problema subrutina en C

    Con el cuerpo de la función no tengo problema, lo que falla es a la hora de definir la funcion y poner como parámetro de entrada el tipo de dato 'a' que definí en el programa principal.Dejo un ejemplo de lo que trate de hacer:



    main(){
    struct reg{
    int a;
    float b;
    char name[50];
    };
    struct reg a[10];

    carga(a);}

    void carga(struc a)//aca es donde tengo el problema, no se como declarar la variable de entrada para la estructura de datos a definida.
    {int i;
    for(i=1,10<=i,i++){
    scanf("%f",&a.b
    [i]);
    scanf("%s",&a.name[i]);}
    }



    Última edición por Zorak; 23/11/2016 a las 20:19:04.

  4. #4
    Registro
    Feb 2010
    Ubicación
    Venezuela, en "la ciudad del Sol amada"
    Posts
    5 592
    Nivel
    Universidad (Ingeniería)
    ¡Gracias!
    2 774 (2 491 msgs.)

    Predeterminado Re: Problema subrutina en C

    A ver si te sirve el video https://www.youtube.com/watch?v=bbffK7dS1ZA

    Saludos,

    \mathcal A \ell
    Don't wrestle with a pig in the mud. You'll both get dirty, but the pig will enjoy it. - Parafraseando a George Bernard Shaw

  5. El siguiente usuario da las gracias a Al2000 por este mensaje tan útil:

    Zorak (24/11/2016)

  6. #5
    Registro
    Feb 2010
    Ubicación
    Argentina
    Posts
    1 637
    Nivel
    Universidad (Ingeniería)
    Artículos de blog
    3
    ¡Gracias!
    477 (432 msgs.)

    Predeterminado Re: Problema subrutina en C

    Che, hay varias cosas a considerar. La primera es que nunca combiene definir una estructura en main(), principalmente para claridad de software. Lo que puedes hacer son 2 cosas. Una es definicion de la estructura como global donde no necesitas pasarla a la función solamente hacer referencia a esta y la segunda es parsarla por parámetro como hiciste con la característica que todo lo que modifiques en la estructura no podras visualizarlo fuera de la función para esto debes pasar el puntero de la estructura, que no es más que el indentificador. Pero como solo quieres visualizarla

    Código:
    struct reg{
    int a;
    float b;
    char name[50];
    };
    struct reg a[10];
    
    void carga(); 
    
    int main() 
    { 
    
    carga();
    
    return 0; 
    }
    
    void carga()//aca es donde tengo el problema, no se como declarar la variable de entrada para la estructura de datos a definida.
    {int i;
    for(i=1,i<10,i++){    //si el arreglo tiene 10 elementos, el numero 10 es el caracter \n, así que va del 0 al 9
    scanf("%f",a[i].b);    //ves la diferencia en hacer referencia a un miembro de la estructura
    scanf("%s",a[i].nombre);}
    }
    Así lo haría yo, ahora si quieres ser más ortodoxo

    Código:
    
    
    struct reg{
    int a;
    float b;
    char name[50];
    };
    
    
    void carga(struct reg a);  // o lo que es lo mismo void carga(struct reg a[]);
    
    int main() 
    { 
    
    struct reg a[10];
    carga(a);
    
    return 0; 
    }
    
    void carga(struct reg a)//aca es donde tengo el problema, no se como declarar la variable de entrada para la estructura de datos a definida.
    {int i;
    for(i=1,i<10,i++){
    scanf("%f",a[i].b);
    scanf("%s",a[i].nombre);}
    }
    AB * {Log}_{2} (1+\dst \frac{S}{N })

  7. El siguiente usuario da las gracias a Julián por este mensaje tan útil:

    Zorak (25/11/2016)

Información del hilo

Usuarios viendo este hilo

Ahora hay 1 usuarios viendo este hilo. (0 miembros y 1 visitantes)

Etiquetas para este hilo

Permisos de publicación

  • No puedes crear hilos
  • No puedes responder
  • No puedes adjuntar archivos
  • No puedes editar tus mensajes
  •