Problema con mostrar elementos de la matriz

Iniciado por Rhythmical, 10 Septiembre 2017, 06:09 AM

0 Miembros y 1 Visitante están viendo este tema.

Rhythmical

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.


#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!

dariodr01

Tu mismo programa arreglado.

#include<stdio.h>
#include<stdlib.h>

void charge();
void show();
int matriz[50][50],M,N; //Aca puedes usar variables globales.

int main()
{
charge();
show();

return 0;
}

void charge()
{
int i, j;

printf("\n**INGRESE NRO DE FILAS **:\n");scanf("%d",&M);
printf("\n**INGRESE NRO DE COLUMNAS**:\n");scanf("%d",&N);

for(i=0; i<M; i++)
{
for(j=0; j<N; j++) {
printf("\n**INGRESE UN VALOR SUPERIOR A CERO [%d][%d]**:\n",i,j);
scanf("%d",&matriz[i][j]);
}
}
}

void show()
{
int i, j;

printf("\n***MATRIZ MXN***\n");

for(i=0; i<M; i++)
{
for(j=0; j<N; j++)
printf("%d ", matriz[i][j]);

printf("\n");
}
}


Rhythmical

#2
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í:
void charge(int matriz[50][50],int M,int N);
void show(int matriz[50][50],int M,int N;


quedaría así:
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.