Anuncio

Colapsar
No hay ningún anuncio todavía.

Problema subrutina en C

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • C/C++ 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
    Re: Problema subrutina en C

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

    Comentario


    • #3
      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, 20:19:04.

      Comentario


      • #4
        Re: Problema subrutina en C

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

        Saludos,

        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

        Comentario


        • #5
          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 })

          Comentario

          Contenido relacionado

          Colapsar

          Trabajando...
          X