Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: DaveTheKing en 1 Junio 2016, 20:28 pm



Título: Cómo generar una matriz que se llene automaticamente de arriba hacia abajo?
Publicado por: DaveTheKing en 1 Junio 2016, 20:28 pm
Hola, mi duda es:
Cómo puedo generar una matriz en c++ que se llene automaticamente de arriba hacia abajo y otra que sea inversa?

 :D :D :D :D :D :D :D :D :D
Espero que me puedan ayudar  ;)


Título: Re: Cómo generar una matriz que se llene automaticamente de arriba hacia abajo?
Publicado por: engel lex en 1 Junio 2016, 20:44 pm
con n ciclos anidados, donde n es la cantidad de dimensiones de la matriz

realmente tu pregunta carece un poco de sentido si no es esa la respuesta experada


Título: Re: Cómo generar una matriz que se llene automaticamente de arriba hacia abajo?
Publicado por: DaveTheKing en 1 Junio 2016, 21:17 pm
Quizá si me expliqué un poco mal... mira, lo que busco hacer es:
Una matriz que se llene en automatico desde el 1 hasta n elementos, por ejemplo:

[1]   [2]   [3]   [4]  [5]
[6]   [7]   [8]   [9] [10]
[11] [12] [13] [14] [15]
[16] [17] [18] [19] [20]

Y una que esté al revés:

[16][15][14][13]
[12][11][10] [9]
 [8]  [7] [6]  [5]
 [4]  [3] [2]  [1]


Título: Re: Cómo generar una matriz que se llene automaticamente de arriba hacia abajo?
Publicado por: AlbertoBSD en 1 Junio 2016, 23:42 pm
Por que complicarse con una matriz bidimencional si facilmente puedes llenar un arreglo lineal en orden ascendente o descendente y tratarla como matriz... A que me refiero aqui esta en video

U-zA-VvOllM

Básicamente seria

Código
  1. #define N 4  //Filas
  2. #define M 5  //Columnas
  3.  
  4. int main(){
  5.  int i = 0;
  6.  int max = M*N;
  7.  int matriz_decendente[M*N],matriz_ascendente[M*N];
  8.  while(i<max){
  9.   matriz_decendente[i] = max - i;
  10.   matriz_ascendente[i] = i+1;
  11.   i++;
  12.  }
  13. }

Y posteriormente mostrarla en pantalla como se describe en el video.

O si prefieres usar un arreglo bidimencional y complicar  el calculo un poco tenemos que.

Código
  1. #define N 4  //Filas
  2. #define M 5  //Columnas
  3.  
  4. int main(){
  5.  int i = 0,j;
  6.  int max = M*N;
  7.  int matriz_decendente[N][M],matriz_ascendente[N][M];
  8.  while(i<N){
  9.   j=0;
  10.    while(j<M){
  11.      matriz_decendente[i][j] = max - (i*M) -j;
  12.      matriz_ascendente[i][j] = (i*M) +j +1;
  13.     j++;
  14.   }
  15.   i++;
  16.  }
  17. }


Título: Re: Cómo generar una matriz que se llene automaticamente de arriba hacia abajo?
Publicado por: class_OpenGL en 2 Junio 2016, 00:42 am
O... podrías interpretar el arreglo bidimensional como uno unidimensional:

Código
  1. #include <stdio.h>
  2.  
  3. #define N 4  //Columnas
  4. #define M 5  //Filas
  5.  
  6. int main(){
  7. int i = 0, j;
  8. int max = M*N;
  9. int matriz_descendente[M][N],matriz_ascendente[M][N];
  10.  
  11. while(i < max){
  12. ((int *)matriz_descendente)[i] = max - i;
  13. ((int *)matriz_ascendente)[i] = i+1;
  14. i++;
  15. }
  16.  
  17. for(i = 0; i < M; i++) {
  18. for(j = 0; j < N; j++)
  19. fprintf(stdout, "%i ", matriz_ascendente[i][j]);
  20.  
  21. fputc('\n', stdout);
  22. }
  23. fputc('\n', stdout);
  24.  
  25. for(i = 0; i < M; i++) {
  26. for(j = 0; j < N; j++)
  27. fprintf(stdout, "%i ", matriz_descendente[i][j]);
  28.  
  29. fputc('\n', stdout);
  30. }
  31.  
  32. return 0;
  33. }


Título: Re: Cómo generar una matriz que se llene automaticamente de arriba hacia abajo?
Publicado por: geeke en 2 Junio 2016, 01:46 am
O si prefieres usar un arreglo bidimencional y complicar  el calculo un poco tenemos que

Porqué no?  :silbar:

Código
  1. int ascendente = 1;
  2. int descendente = M*N;
  3.  
  4. matriz_decendente[i][j] = descendente--;
  5. matriz_ascendente[i][j] = ascendente++;


Título: Re: Cómo generar una matriz que se llene automaticamente de arriba hacia abajo?
Publicado por: HardForo en 2 Junio 2016, 14:09 pm
Las respuestas fueron más que buenas pero en pocas palabras es como si imprimieras pero en vez de meter un salto de linea, incrementas el # de fila.


Título: Re: Cómo generar una matriz que se llene automaticamente de arriba hacia abajo?
Publicado por: DaveTheKing en 20 Enero 2017, 06:30 am
Muchas gracias a vos por su apoyo, fueron gran ayuda y resolvieron mis dudas, en verdad os agradezco.