Ver Mensaje Individual
  #12 (permalink)  
Antiguo 06/07/2011, 01:28
Avatar de Doommarine_Maxi
Doommarine_Maxi
 
Fecha de Ingreso: febrero-2011
Mensajes: 54
Antigüedad: 13 años, 2 meses
Puntos: 8
Respuesta: Problema sumar arrays

Te recomiendo que trabajes con funciones compañero (ya estube viendo varios codigos tuyos).


Este por ejemplo seria una version mas "funcional" de tu programa ya que permite no solo matrices con 5x5, sino con varios tipo de dimensiones (2x5, 5x3, 2x4, etc...)
Fijate echale un vistaso.
Código C++:
Ver original
  1. #include <iostream>
  2.         using namespace std;
  3.          
  4.         char Confirmar[500];
  5.         int tabla[12][12];
  6.         int Sumafila[12];
  7.         int Sumacolumna[12];
  8.         char m_numeros[12][32];
  9.        
  10.         void calc_filas(int, int);
  11.         int agregar_fila(char* ,int , int);
  12.         void calc_columnas(int, int);
  13.      
  14.         void most_tabla(int, int);
  15.         int main()
  16.         {
  17.         cout << "Programa dessarollado por Jesus Martin Berlanga (Modificado por Maximiliano Viamonte)." << endl;
  18.         cout << "COPYRIGHT (C) JESUS MARTIN BERLANGA 2011 TODOS LOS DERECHOS RESERVADOS" << endl;
  19.         cout << "SOLO SE PERMITE EXHIBIR ESTE TEXTO MENCIONANDO AL AUTOR Y ESTA LICENCIA" << endl;
  20.          
  21.         strcpy(m_numeros[0], "primera");
  22.         strcpy(m_numeros[1], "segunda");
  23.         strcpy(m_numeros[2], "tercera");
  24.         strcpy(m_numeros[3], "cuarta");
  25.         strcpy(m_numeros[4], "quinta");
  26.         strcpy(m_numeros[5], "sexta");
  27.         strcpy(m_numeros[6], "septima");
  28.         strcpy(m_numeros[7], "octava");
  29.          
  30.          calc_filas(5, 5);
  31.          calc_columnas(5, 5);
  32.          most_tabla(5, 5);
  33.          
  34.      
  35.          
  36.         cout << "Escribe algo para salir" << endl;
  37.         cin >> Confirmar;
  38.         }
  39.        
  40.     void calc_filas(int cantidad, int columnas)
  41.     {
  42.      int i = 0;
  43.          char mensaje[512];
  44.          while (i < cantidad)
  45.          {
  46.              sprintf(mensaje, "Introduce los %i numeros de la %s fila separados por espacios.\n", columnas, m_numeros[i]);
  47.              Sumafila[i] = agregar_fila(mensaje, i, columnas);
  48.              i = i + 1;      
  49.          }
  50.        
  51.         return;
  52.          
  53.        
  54.     }
  55.     void calc_columnas(int filas, int columnas)
  56.     {
  57.          int f = 0;
  58.          int c = 0;
  59.          while (c < columnas)
  60.          {
  61.              f = 0;
  62.              Sumacolumna[c] = 0;
  63.              while (f < filas)
  64.              {
  65.                     Sumacolumna[c] =  Sumacolumna[c] + tabla[f][c];
  66.                     f = f + 1;
  67.              }
  68.              c = c + 1;
  69.          }
  70.          return;
  71.     }
  72.     int agregar_fila(char * mensaje, int fila, int columnas)
  73.     {
  74.         cout << mensaje << endl;
  75.         int resultado = 0;
  76.         int c = 0;
  77.         while (c < columnas)
  78.         {
  79.               cin >> tabla[fila][c];
  80.               resultado = resultado + tabla[fila][c];
  81.               c = c + 1;
  82.         }
  83.         return  resultado;
  84.     }
  85.     void most_tabla(int filas, int columnas)
  86.     {
  87.          char titulo[512];
  88.          sprintf(titulo, "Tabla %ix%i completa:", filas, columnas);
  89.      
  90.          char encabezado[1024];
  91.          int c = 0;
  92.          sprintf(encabezado, " ");
  93.          while (c < columnas)
  94.          {
  95.                sprintf(encabezado, "%s        %i", encabezado, (c+1));
  96.                c = c + 1;
  97.          }
  98.          
  99.         cout << titulo << endl;
  100.         cout << encabezado << endl;
  101.         cout << "        +-----------------------------------+" << endl;
  102.          int f = 0;
  103.          char m_fila[filas][1024];
  104.          while (f < filas)
  105.          {
  106.                   sprintf(m_fila[f], " %i      |", (f+1));
  107.                   c = 0;
  108.                   while (c < columnas)
  109.                   {
  110.                         sprintf(m_fila[f], "%s %i      ", m_fila[f], tabla[f][c]);
  111.                         c = c + 1;
  112.                   }
  113.                   sprintf(m_fila[f], "%s| %i", m_fila[f], Sumafila[f]);
  114.                cout << m_fila[f] << endl;
  115.                f = f + 1;
  116.          }
  117.          
  118.          char r_columna[1024];
  119.         sprintf(r_columna, " ");
  120.          c = 0;
  121.          while (c < columnas)
  122.          {
  123.            
  124.             sprintf(r_columna, "%s        %i", r_columna, Sumacolumna[c]);
  125.             c = c + 1;
  126.          }
  127.      
  128.         cout << r_columna << endl;
  129.         cout << endl;
  130.          
  131.          return;
  132.     }

Disculpa si no comente el codigo es que lo hice a las 4:25 am y la verdad tenia sueño xD si hay dudas mañana le hechamos juntos un vistaso, seguramente debe tener algun error el codigo xD.

Sigue programando, es algo bastante entretenido la programacion, todos los dias encuentras a alguien que sabe mas de lo que puedes llegar a imaginar xD (me pasa seguido xDD)