Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Fulanito19 en 14 Mayo 2019, 20:56 pm



Título: Matriz aleatoria en c
Publicado por: Fulanito19 en 14 Mayo 2019, 20:56 pm
Buenas tengo un problema para imprimir una matriz aleatoria en c en ubuntu y es que al imprimir directamente me salen como unos cuadrados muy raros si me podeis ayudar se agradece ;D

CODIGO:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUMFILAS 6
#define NUMCOLUMNAS 6

void inicializa(int m[NUMFILAS][NUMCOLUMNAS]);

int main(int argc, char*argv[]){
   int m[NUMFILAS][NUMCOLUMNAS];
   srand(time(NULL));
   inicializa(m);
   return 0;
}

void inicializa(int m[NUMFILAS][NUMCOLUMNAS]){
   int i,j;
   for(i=0;i<NUMFILAS;i++){
      for(j=0;j<NUMCOLUMNAS;j++){
         m[j]=rand()%10+1;
         printf("%ls\t",&m [j]);
         
}
         printf("\n");   
}

         
   
}

OBSERVACIÓN: Antes de los [j] deberia salir un i entre corchetes tambien pero no sale no se porque


Título: Re: Matriz aleatoria en c
Publicado por: K-YreX en 14 Mayo 2019, 22:15 pm
La i entre corchetes no sale porque se traduce como una etiqueta de cursiva. Por eso a partir de ahí viene escrito en cursiva. Para solucionarlo mete tu código entre etiquetas de código GeSHi seleccionando como lenguaje C.

Y estás usando el formato %ls que la s es para cadenas cuando estás usando una matriz de enteros. El formato para enteros es %d.
Además estás intentando mostrar la dirección de memoria de cada elemento, en vez de el elemento.
Código
  1. printf("%d", &variable); // muestras la dirección de memoria de variable
  2. printf("%d", variable); // muestra el valor entero de la variable