Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Rhythmical en 10 Septiembre 2017, 06:09 am



Título: Problema con mostrar elementos de la matriz
Publicado por: Rhythmical en 10 Septiembre 2017, 06:09 am
Buenos días a todos/as, soy nuevo en este foro y tambien en el mundo de la programación C. Pues tengo un problema con mostrar la matriz en una funcion void, ya que al compilar solamente me muestra la primera función pero la segunda solo el printf del comienzo y lo demás no aparece, quisiera saber cual es el problema. Este
 Como veran este el código, por lo cual nose a que se debe esto.

Código:
#include<stdio.h>
#include<stdlib.h>

void charge(int matrix[50][50], int M, int N);
void show(int matrix[50][50], int M, int N);
 main(void)
{
int matriz[50][50], M, N;

charge(matriz,M,N);
show(matriz, M, N);
}
void charge(int matrix[50][50], int M, int N)
{
   int i, j;
   printf("\n**INGRESE NRO DE FILAS **:\n");scanf("%d",&M);
   printf("\n**INGRESE NRO DE COLUMNAS**:\n");scanf("%d",&N);
   for(j=0;j<M;j++)
   {
    for(i=0;i<N;i++)
    {
    printf("\n**INGRESE UN VALOR SUPERIOR A CERO [%d][%d]**:\n",i,j);scanf("%d",&matrix[j][i]);   
}//for(i)
   }//for(J)
}//void

void show(int matrix[50][50], int M, int N)

{
   int i, j;
   
   printf("\n***MATRIZ MXN***\n");
   for(j=0;j<M;j++)
   {
    for(i=0;i<N;i++)
    {
    printf("|%d|", matrix[j][i]);
}//for(i)
printf("\n");
   }//for(J)
}//void

Espero su ayuda! Saludos cordiales!


Título: Re: Problema con mostrar elementos de la matriz
Publicado por: dariodr01 en 10 Septiembre 2017, 16:32 pm
Tu mismo programa arreglado.

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. void charge();
  5. void show();
  6. int matriz[50][50],M,N; //Aca puedes usar variables globales.
  7.  
  8. int main()
  9. {
  10. charge();
  11. show();
  12.  
  13. return 0;
  14. }
  15.  
  16. void charge()
  17. {
  18. int i, j;
  19.  
  20. printf("\n**INGRESE NRO DE FILAS **:\n");scanf("%d",&M);
  21. printf("\n**INGRESE NRO DE COLUMNAS**:\n");scanf("%d",&N);
  22.  
  23. for(i=0; i<M; i++)
  24. {
  25. for(j=0; j<N; j++) {
  26. printf("\n**INGRESE UN VALOR SUPERIOR A CERO [%d][%d]**:\n",i,j);
  27. scanf("%d",&matriz[i][j]);
  28. }
  29. }
  30. }
  31.  
  32. void show()
  33. {
  34. int i, j;
  35.  
  36. printf("\n***MATRIZ MXN***\n");
  37.  
  38. for(i=0; i<M; i++)
  39. {
  40. for(j=0; j<N; j++)
  41. printf("%d ", matriz[i][j]);
  42.  
  43. printf("\n");
  44. }
  45. }
  46.  
  47.  


Título: Re: Problema con mostrar elementos de la matriz
Publicado por: Rhythmical en 10 Septiembre 2017, 18:21 pm
Hola, muchas gracias por ayudarme. Aunque tambien quería saber cual era mi problema, me he fijado en algunos ejercicios mios y me he dado cuenta de un pequeño detalle y lo que me faltaba era declarar el & en las variables M y N.

Osea, que de así:
Código:
void charge(int matriz[50][50],int M,int N);
void show(int matriz[50][50],int M,int N;

quedaría así:
Código:
void charge(int matriz[50][50],int &M,int &N);
void show(int matriz[50][50],int &M,int &N;

Pido disculpas por no darme cuenta antes, pero igual gracias por la ayuda.