Test Foro de elhacker.net SMF 2.1

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
Cita de: AlbertoBSD en 17 Agosto 2016, 21:42 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:

scanf("%d",&M[j]);

y deberia de ser:

scanf("%d",&M[i][j]);

Asi debe de ser con eso lee 15 elementos


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

int main()
{
int M[5][3];
ingresodatos(M, 5, 3)
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[i][j]);
}
}
}


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

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!