elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  c++ matrices[3][4]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: c++ matrices[3][4]  (Leído 3,267 veces)
lukaszg_15

Desconectado Desconectado

Mensajes: 26



Ver Perfil
c++ matrices[3][4]
« en: 25 Marzo 2014, 18:25 pm »

hola tengo una duda en un ejercicio, lo tengo todo hecho pero no me hace la suma de forma correcta, es decir por ejemplo no me suma mata[0][1] con matb[0][1] lo suma con otro numero y no entiendo la razon, aqui os dejo el ejercicio:

Código
  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<fstream>
  4.  
  5. using namespace std;
  6.  
  7. int main ()
  8. {
  9.    int mata[3][4];
  10.    int matb[3][4];
  11.    int res[3][4];
  12.  
  13. for (int f=0; f<=3; f++){
  14. for (int c=0; c<=4; c++)
  15. { cout<<"Matriz A["<<f<<"]["<<c<<"] = "; cin>> mata[f][c]; }
  16. }
  17.  
  18. for (int i=0; i<=3; i++){
  19. for (int b=0; b<=4; b++)
  20. { cout<<"Matriz B["<<i<<"]["<<b<<"] = "; cin>> matb[i][b]; }
  21. }
  22.  
  23. for (int i=0; i<=3; i++){
  24. for (int c=0; c<=4; c++){
  25.  
  26.    res[i][c]= mata[i][c] + matb[i][c];
  27.  
  28.    cout<< "Resultado Suma matrices: " <<"["<< i <<"]["<<c<<"]: "<< res[i][c]<<endl;
  29. }
  30.    }
  31.  
  32.  
  33. system ("pause");
  34. return 0;
  35. }


« Última modificación: 25 Marzo 2014, 20:19 pm por lukaszg_15 » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: c++ matrices[3][4]
« Respuesta #1 en: 25 Marzo 2014, 18:39 pm »

El problema se debe a que en todos los bucles utilizas el operador "<=" cuando deberia ser "<".

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
lukaszg_15

Desconectado Desconectado

Mensajes: 26



Ver Perfil
Re: c++ matrices[3][4]
« Respuesta #2 en: 25 Marzo 2014, 18:41 pm »

perfecto muchas gracias, me fijare mas la proxima vez.
En línea

Yoel Alejandro

Desconectado Desconectado

Mensajes: 254



Ver Perfil WWW
Re: c++ matrices[3][4]
« Respuesta #3 en: 25 Marzo 2014, 19:34 pm »

Y no tienes que inventar tantos nombres de índices, i, j, b, c, f, etc. Puedes usar siempre los mismos nombres i, j, y el programa queda más sencillo:
Código
  1. int main ()
  2. {
  3.    int mata[3][4];
  4.    int matb[3][4];
  5.    int res[3][4];
  6.    int i, j;
  7.  
  8. for (i=0; i<3; i++){
  9. for (j=0; j<4; j++)
  10. { cout<<"Matriz A["<<i<<"]["<<j<<"] = "; cin>> mata[i][j]; }
  11. }
  12.  
  13. for (i=0; i<3; i++){
  14. for (j=0; j<4; j++)
  15. { cout<<"Matriz j["<<i<<"]["<<j<<"] = "; cin>> matb[i][j]; }
  16. }
  17.  
  18. for (i=0; i<3; i++) {
  19. for (j=0; j<4; j++) {
  20. res[i][j]= mata[i][j] + matb[i][j];
  21.  
  22. cout<< "Resultado Suma matrices: " <<"["<< i <<"]["<<j<<"]: "<< res[i][j]<<endl;
  23. }
  24. }
  25. getchar();
  26. return 0;
  27. }

o si prefieres definir los contadores como locales del ciclo:
Código
  1. int main ()
  2. {
  3.    int mata[3][4];
  4.    int matb[3][4];
  5.    int res[3][4];
  6.  
  7. for (int i=0; i<3; i++){
  8. for (int j=0; j<4; j++)
  9. { cout<<"Matriz A["<<i<<"]["<<j<<"] = "; cin>> mata[i][j]; }
  10. }
  11.  
  12. for (int i=0; i<3; i++){
  13. for (int j=0; j<4; j++)
  14. { cout<<"Matriz j["<<i<<"]["<<j<<"] = "; cin>> matb[i][j]; }
  15. }
  16.  
  17. for (int i=0; i<3; i++) {
  18. for (int j=0; j<4; j++) {
  19. res[i][j]= mata[i][j] + matb[i][j];
  20.  
  21. cout<< "Resultado Suma matrices: " <<"["<< i <<"]["<<j<<"]: "<< res[i][j]<<endl;
  22. }
  23. }
  24. getchar();
  25. return 0;
  26. }

En este caso preferiría el primer método porque ciertamente usarás las variables i,j a lo largo de todo el código. Recomendaría también usar getchar() en lugar de system("PAUSE") por las razones que ha sido explicadas muchas veces en el foro, jeje.
En línea

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
lukaszg_15

Desconectado Desconectado

Mensajes: 26



Ver Perfil
Re: c++ matrices[3][4]
« Respuesta #4 en: 25 Marzo 2014, 20:18 pm »

gracias por la observacion nunca esta de mas saber hacerlo correctamente.  :xD
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: c++ matrices[3][4]
« Respuesta #5 en: 25 Marzo 2014, 20:34 pm »

En tu código, a no ser que sólo sea una parte, te sobran una librería: <fstream> y si quieres hacer uso de getchar en lugar de system, sobraría la librería <csdtlib> y faltaría la <cstdio>.

Yo soy más partidario de que el usuario, que normalmente no tiene pajorera idea de informática, introduzca los índices como se hace en mates, es decir el primer elemento de la matriz es el (1,1) y así sucesivamente así como llamar a las matrices con el nombre con que se declaran las variables, si no al final se puede uno liar de quién es quién. Y no queda mal una impresión final en forma de matriz de la matriz suma.

Y por último, sería partidario de declarar como macros el número de filas y columnas, no sea que tengas que cambiar esas dimensiones. Te ahorrarías ir por todo el código cambiando el 3 y el 4 por los nuevos valores en cambio con las macros sólo tienes que cambiarlos a ellos en un solo sitio:


Código
  1. #include <iostream>
  2. #include<cstdio>
  3.  
  4. #define FILAS     3
  5. #define COLUMNAS  4
  6.  
  7. using namespace std;
  8. int main()
  9. {
  10.    int A[FILAS][COLUMNAS];
  11.    int B[FILAS][COLUMNAS];
  12.    int SUMA[FILAS][COLUMNAS];
  13.    int i, j;
  14.  
  15.    for (i=0; i<FILAS; i++){
  16.        for (j=0; j<COLUMNAS; j++){
  17.            cout<<"A["<<i<<"]["<<j<<"] = ";
  18.            cin>> A[i][j];
  19.        }
  20.    }
  21.    for (i=0; i<FILAS; i++){
  22.        for (j=0; j<COLUMNAS; j++){
  23.            cout<<"B["<<i<<"]["<<j<<"] = ";
  24.            cin>> B[i][j];
  25.        }
  26.    }
  27.    for (i=0; i<FILAS; i++) {
  28.      for (j=0; j<COLUMNAS; j++) {
  29.        SUMA[i][j]= A[i][j] + B[i][j];
  30.        cout<< "SUMA" <<"["<< i <<"]["<<j<<"]= "<< SUMA[i][j]<<endl;
  31.      }
  32.    }
  33.    for (i=0; i<FILAS; i++){
  34.      for (j=0; j<COLUMNAS; j++){
  35.        cout<<SUMA[i][j]<<"  ";
  36.      }
  37.      cout<< endl;
  38.    }
  39.    getchar();
  40.    return 0;
  41. }


¡¡¡¡ Saluditos! ..... !!!!




En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: c++ matrices[3][4]
« Respuesta #6 en: 25 Marzo 2014, 20:38 pm »

En una oracion se resolvio el problema, no entiendo para que pusieron despues tanto codigo, traten de que escriba el codigo el que tiene el problema.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
matrices en C#
Programación General
volterra 4 10,540 Último mensaje 18 Mayo 2010, 06:26 am
por Og.
matrices en c
Programación C/C++
ALONSOQ 9 5,166 Último mensaje 27 Junio 2012, 05:15 am
por twins
matrices
Programación C/C++
lorderick 3 3,370 Último mensaje 8 Septiembre 2012, 05:12 am
por CSQCasimiro
[C++] Matrices
Programación C/C++
C-- 4 2,974 Último mensaje 21 Noviembre 2012, 01:14 am
por C--
matrices en c
Programación C/C++
howaboutno 2 2,456 Último mensaje 26 Diciembre 2012, 05:53 am
por durasno
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines