Adunare matrice

Intrebari despre limbajul C++, standardul C++, STL, OOP in C++ sau alte subiecte nelegate de VisualC++
Post Reply
tuxman
Junior
Junior
Posts: 4
Joined: 23 Apr 2016, 11:55
Judet: Constanţa

Adunare matrice

Post by tuxman » 11 Oct 2018, 13:01

Salut,

Incerc sa adun doua matrici, dar rezultatul nu este corect.
Elementele matricilor sunt generate random ( cu functia rand() ).
Codul este simplu: o functie pentru generare elemente; o functie pentru adunare matrice; apoi in main sunt afisate cele doua matrice, si suma lor.

Code: Select all

#include <iostream>

using namespace std;

const int n=3;
//generare valori pentru cele doua matrici
int Random (int)
{
int i =rand () %20;
return i;
}

// adunare matrici
int MatrixAdd (int myarray1[n][n], int myarray2[n][n])
{
    
int myarray3[n][n];
for (int i = 0; i < n ; i++)
	{
	for (int j = 0; j < n; j++)
		{	
		myarray3 [i][j] = myarray1 [i][j] + myarray2 [i][j];
		
		}
		
	}

return myarray3[n][n];
}


int main ()
{
srand (time(NULL));
int myarray1 [n][n];
int myarray2 [n][n];
int m3 [n][n];
//afisare matricea 1
for (int i = 0; i < n ; i++)
	{
	for (int j = 0; j < n; j++)
		{
		myarray1[i][j] = Random (0);	
		cout << myarray1 [i][j] << "\t";
		}
		cout << endl;
	}
cout << endl;
// afisare matricea 2
for (int i = 0; i < n ; i++)
	{
	for (int j = 0; j < n; j++)
		{	
		myarray2[i][j] = Random (0);	
		cout << myarray2 [i][j] << "\t";
		}
		cout << endl;
	}
cout << endl;
// afisare suma
m3 [n][n] = MatrixAdd (myarray1, myarray2);
for (int i = 1; i <= 3; ++i) {
       for (int j = 1; j <= 3; ++j) {
           cout<<m3[i][j]<<" ";
	   }
           cout<<"\n"; // face afisarea sa treaca pe rand nou
    }
system("PAUSE");
return 0;
}
Astept cu nerabdare o idee, un sfat...



Viorel
Microsoft MVP
Microsoft MVP
Posts: 292
Joined: 13 Jul 2007, 12:26

Re: Adunare matrice

Post by Viorel » 12 Oct 2018, 07:52

Încearcă o altă funcție:

Code: Select all

void MatrixAdd( int myarray1[n][n], int myarray2[n][n], int myarray3[n][n] )
{
	for( int i = 0; i < n; i++ )
	{
		for( int j = 0; j < n; j++ )
		{
			myarray3[i][j] = myarray1[i][j] + myarray2[i][j];
		}
	}
}
Apelare:

Code: Select all

MatrixAdd( myarray1, myarray2, m3 );
Pentru afișare, folosește cicluri corespunzătoare.

tuxman
Junior
Junior
Posts: 4
Joined: 23 Apr 2016, 11:55
Judet: Constanţa

Re: Adunare matrice

Post by tuxman » 12 Oct 2018, 09:26

Super !!! Multumesc mult !

Post Reply