• Domingo 22 de Diciembre de 2024, 12:22

Autor Tema:  Dar forma a un Array Bidimensional  (Leído 1413 veces)

valcro

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Dar forma a un Array Bidimensional
« en: Miércoles 1 de Abril de 2009, 11:38 »
0
Hola chic@s^^

Supongamos que quiero mostrar por pantalla un Array Unidimensional con el siguiente codigo:

Código: C++
  1.  
  2. #include <iostream>
  3. #include <cstdlib>
  4. using namespace std;
  5.  
  6. const int TAMANIO = 2;
  7. typedef int ListaNumeros [TAMANIO];
  8.  
  9. void Escribir(ListaNumeros& lista){
  10.      int i;
  11.      int numeros;
  12.      cout << "Inserte " << TAMANIO << " numeros para mostrarlos." << endl;
  13.      for (i=0; i<TAMANIO; i++){
  14.          cin >> numeros;
  15.          lista[i] = numeros;
  16.          }
  17.          }
  18.  
  19. void Imprimir(const ListaNumeros& lista){
  20.      
  21.      int i;
  22.      
  23.      for (i=0; i<TAMANIO; i++){
  24.          cout << lista[i] << endl;
  25.          }
  26.          }
  27.  
  28. int main()
  29. {
  30.  
  31. ListaNumeros lista;
  32.  
  33. Escribir(lista);
  34. Imprimir(lista);
  35.  
  36.  
  37. system("PAUSE");
  38. return 0;
  39. }
  40.  
  41.  
  42.  

El problema esque el array sale por pantalla todos los numeros en una sola columna de la siguiete forma:
5
5
En vez de
55 <- (que es la forma la cual yo quiero que salgan)

Ahora me da por probar con un array  bidimensional y sigo con el mismo problema:

Código: C++
  1.  
  2. #include <iostream>
  3. #include <cstdlib>
  4. using namespace std;
  5.  
  6. const int LIM_MAX = 3;// limite maximo (superpoblacion)
  7. const int LIM_MIN = 2;// limite minimo (infrapoblacion)
  8.  
  9. const int FILAS = 10;// numero de filas del juego
  10. const int COLUMNAS = 10;// numero de columnas del juego
  11. const int FILAS_M = FILAS+2;// numero de filas del juego + margen
  12. const int COLUMNAS_M = COLUMNAS+2;// numero de columnas del juego + margen
  13.  
  14. // Tipo Array para la creacion de un MundoVacio
  15. typedef bool Mundo [FILAS_M] [COLUMNAS_M];
  16.  
  17. const char PUNTO = '.';
  18.  
  19. // Procedimiento para generar un MundoVacio
  20. void mundovacio(Mundo& m)
  21. {
  22.      int i;
  23.      int j;
  24.      
  25.      /* Rellena el array con puntos*/
  26.      for (i=0; i<FILAS_M; i++){
  27.          for (j=0; j<COLUMNAS_M; j++){
  28.              m[i][j]=PUNTO;
  29.              }
  30.              }
  31.  
  32.      // Imprime el array con un mundo vacio
  33.      for (i=0; i<FILAS_M; i++){
  34.          for (j=0; j<COLUMNAS_M; j++){
  35.              cout << m[i][j] << endl;
  36.              }
  37.              }
  38. }
  39.              
  40.          
  41. int main()
  42. {
  43.     Mundo m;
  44.  
  45. mundovacio(m);
  46.  
  47. system("PAUSE");
  48. return 0;
  49. }
  50.  
  51.  

Y cuando lo ejecuto, vuelven a salir tdos los datos en una sola columna en vez de una matriz como yo quiero que salga:
.................
.................
.................
.................

Que tengo que hacer para dar forma a los array y que me salgan en filas y columnas?

Gracias

phobos

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Dar forma a un Array Bidimensional
« Respuesta #1 en: Miércoles 1 de Abril de 2009, 11:52 »
0
Hola.

En las lineas donde haces los cout, aparte del dígito también estás enviando un final de linea (endl), lo que provoca un salto de linea.
Prueba a poner "cout<<endl" fuera de los bucles.

Saludos.

valcro

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Dar forma a un Array Bidimensional
« Respuesta #2 en: Miércoles 1 de Abril de 2009, 12:02 »
0
Cierto, muchas gracias phobos, ese era el problema que tenia.

Saludos