Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NicolasPileci en 17 Agosto 2016, 21:37 pm



Título: Ayuda con codigo C
Publicado por: NicolasPileci en 17 Agosto 2016, 21:37 pm
Hola, buenos dias,

Tengo un problema con el siguiente codigo:

void IngresoDatos (int [5][3], int, int);

.
.
.

void IngresoDatos (int M[5][3], int F, int C)
{
   int i, j;
   for(i=0;i<=F;i++)
   {
      for(j=0;j<=C;i++)
      {
         printf("\nIngrese numero: \n\n");
         scanf("%d",&M[j]);
      }
   }
}


El problema esta en que en vez de ingresar 15 elementos (5x3) ingresan 25.

Gracias!


Título: Re: Ayuda con codigo C
Publicado por: AlbertoBSD en 17 Agosto 2016, 21:42 pm
Cambia el "menor o Igual que" por solo "Menor que"

Saludos


Título: Re: Ayuda con codigo C
Publicado por: NicolasPileci en 18 Agosto 2016, 15:40 pm
Gracias por tu respuesta, pero aun sigue sin funcionar.

Saludos!


Título: Re: Ayuda con codigo C
Publicado por: AlbertoBSD en 18 Agosto 2016, 17:12 pm
Y que parte de tu código no funciona?

Tal vez lo estas invocando mal.

Saludos!


Título: Re: Ayuda con codigo C
Publicado por: NicolasPileci en 18 Agosto 2016, 19:39 pm
Hola!

#include <stdio.h>
void IngresoDatos (int [5][3], int, int);

int main()
{
   int M[5][3];
   ingresodatos(M, 4, 2)
   return 0;
}

void IngresoDatos (int M[5][3], int F, int C)
{
   int i, j;
   for(i=0;i<=F;i++)
   {
      for(j=0;j<=C;i++)
      {
         printf("\nIngrese numero: \n\n");
         scanf("%d",&M[j]);
      }
   }
}


Título: Re: Ayuda con codigo C
Publicado por: AlbertoBSD en 18 Agosto 2016, 19:52 pm
Cambia el "menor o Igual que" por solo "Menor que"

Ya te lo habia dicho y no hicistes los cambios que te comente.

Tambien tienes problemas para acceder a los elementos, estas leyendo asi:

Código
  1. scanf("%d",&M[j]);

y deberia de ser:

Código:
 scanf("%d",&M[i][j]);

Asi debe de ser con eso lee 15 elementos


Código
  1. #include <stdio.h>
  2. void IngresoDatos (int [5][3], int, int);
  3.  
  4. int main()
  5. {
  6. int M[5][3];
  7. ingresodatos(M, 5, 3)
  8. return 0;
  9. }
  10.  
  11. void IngresoDatos (int M[5][3], int F, int C)
  12. {
  13. int i, j;
  14. for(i=0;i<F;i++)
  15. {
  16. for(j=0;j<C;i++)
  17. {
  18. printf("\nIngrese numero: \n\n");
  19. scanf("%d",&M[i][j]);
  20. }
  21. }
  22. }

Saludos


Título: Re: Ayuda con codigo C
Publicado por: T. Collins en 18 Agosto 2016, 20:07 pm
Aparte del
Código:
&M[i][j]
que te ha comentado AlbertoBSD, el problema está aquí:

Código
  1. for(j=0;j<C;i++)

Debería ser j++ no i++, si no incrementas j nunca, se queda en un bucle infinito.


Título: Re: Ayuda con codigo C
Publicado por: NicolasPileci en 19 Agosto 2016, 19:53 pm
Muchas gracias a todos!