tengo este codigo que me hice para practicar suma de matrices...compila pero en algun lado no deja que se ejecute..me podrian decir cual es el error
#include <iostream>
using namespace std;
int main()
{
int i,j;
int matriz[1][1];
int matriz1[1][1];
int matrizresultado[1][1];
cout<<"cargar primer matriz"<<endl;
for (int i = 0; i <= 1; i++)
{
for (int j = 0; j <= 1; j++)
{
cin>>matriz[i][j];
}
}
//carga matriz1
cout<<"cargamos segunda matriz"<<endl;
for (int i = 0; i <= 1; i++)
{
for (int j = 0; j <= 1; j++)
{
cin>>matriz1[i][j];
}
}
//suma matrice
for (int i = 0; i < 1; i++)
{
for (int j = 0; j <= 1; j++)
{
matrizresultado[i][j]=matriz[i][j]+matriz1[i][j];
}
}
//resultado matrices
for (int i = 0; i <= 1; i++)
{
for (int j = 0; j <= 1; j++)
{
cout<<"el resultado es :"<<matrizresultado[i][j];
}
}
getchar();
return 0;
}
Citar'matrices.exe' (Win32): 'C:\Users\flony\Documents\Visual Studio 2012\Projects\hola mundo\Debug\matrices.exe' cargado. Símbolos cargados.
'matrices.exe' (Win32): 'C:\Windows\SysWOW64\ntdll.dll' cargado. No se puede encontrar o abrir el archivo PDB.
'matrices.exe' (Win32): 'C:\Windows\SysWOW64\kernel32.dll' cargado. No se puede encontrar o abrir el archivo PDB.
'matrices.exe' (Win32): 'C:\Windows\SysWOW64\KernelBase.dll' cargado. No se puede encontrar o abrir el archivo PDB.
'matrices.exe' (Win32): 'C:\Windows\SysWOW64\msvcp110d.dll' cargado. Símbolos cargados.
'matrices.exe' (Win32): 'C:\Windows\SysWOW64\msvcr110d.dll' cargado. Símbolos cargados.
Run-Time Check Failure #2 - Stack around the variable 'matrizresultado' was corrupted.
El programa '[4656] matrices.exe' terminó con código 0 (0x0).
La condicion en los for debe ser "<" y no "<="
El error principal ya lo comento durasno: utilizar en los bucles el operador "<=" cuando debería ser "<".
Ello porque cuando declaras un array:
int num[N];
Se indica el numero de elementos N y se accede a estos mediante los indices 0 .. N-1.
Como declaras un array de un elemento que a su vez es un array de un elemento de tipo int:
int matriz[1][1];
El único indice valido al acceder a ese array es cero, mismo caso con los otros dos arrays.
Un saludo
Que tal amigo aqui esta tu codigo resuelto
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
using namespace std;
int main()
{
int i,j;
int matriz[10][10];
int matriz1[10][10];
int matrizresultado[10][10];
cout<<"cargar primer matriz"<<endl;
for (i=0; i<=1; i++) {
for (j=0; j<=1; j++) {
cout<<"Ingresa numero: "; cin>> matriz[i][j];
}
}
//carga matriz1
cout<<"cargamos segunda matriz"<<endl;
for (int i = 0; i <= 1; i++)
{
for (int j = 0; j <= 1; j++)
{
cin>>matriz1[i][j];
}
}
//suma matrice
for (int i = 0; i <=1; i++)
{
for (int j = 0; j <= 1; j++)
{
matrizresultado[i][j]=matriz[i][j]+matriz1[i][j];
}
}
//resultado matrices
system("CLS");
cout<<"Matriz A: \n\n";
for (int i = 0; i <= 1; i++)
{
for (int j = 0; j <= 1; j++)
{
cout<<"["; cout<<matriz[i][j]; cout<<"]";
}
cout<<"\n";
}
cout<<"\n\n";
cout<<"Matriz B: \n\n";
for (int i = 0; i <= 1; i++)
{
for (int j = 0; j <= 1; j++)
{
cout<<"["; cout<<matriz1[i][j]; cout<<"]";
}
cout<<"\n";
}
cout<<"\n\nEl Resultado Es: \n\n";
for (int i = 0; i <= 1; i++)
{
for (int j = 0; j <= 1; j++)
{
cout<<"["; cout<<matrizresultado[i][j]; cout<<"]";
}
cout<<"\n";
}
getch();
return 0;
}