Ik moet, indien mogelijk, twee matrices met elkaar vermenigvuldigen. Hiervoor moet ik 3 functies gebruiken.
Maar wat is er fout? Waarom doet hij het niet?
Mijn code:
Code: Selecteer alles
#include <iostream>
using namespace std;
//Definieren van de grootte van de matrices VERPLICHT
#define MAX_SIZE 10
typedef float matrix[MAX_SIZE][MAX_SIZE]; //VERPLICHT
//Functie prototypes
void lees_matrix(matrix a[MAX_SIZE][MAX_SIZE], int m, int n);
void vermenigvuldig(matrix a[MAX_SIZE][MAX_SIZE],matrix b[MAX_SIZE][MAX_SIZE],matrix c[MAX_SIZE][MAX_SIZE], int m, int n, int p);
void print_matrix(matrix c[MAX_SIZE][MAX_SIZE], int m,int p);
int main()
{
matrix a, b, c;
int rij_a, kolom_a, rij_b, kolom_b;
int z(0);
cout << "Voer het aantal rijen en kolommen voer matrix a in." << endl; //Dimensies matrix a aanduiden
cin >> rij_a >> kolom_a;
cout << "Voer het aantal rijen en kolommen voer matrix a in." << endl; //Dimensies matrix b aanduiden
cin >> rij_b >> kolom_b;
if(rij_b != kolom_a) //Voorwaarde voor het vermenigvuldigen van de matrices
{
cout << "De dimensies van de matrices zijn niet geschikt voor vermenigvuldiging" << endl;
exit(1);
}
cout << "Matrix a:" << endl;
//Matrix a tonen
cout << lees_matrix(a, rij_a, kolom_a) << endl;
cout << "Matrix b:" << endl;
//Matrix b tonen
cout <<lees_matrix(b, rij_b, kolom_b) << endl;
vermenigvuldig(a, b, c, rij_a, kolom_a, kolom_b);
//Uitvoeren van de vermenigvuldiging
cout << "Het product van deze matrices is: " << endl; //Het product matrix c tonen
cout << print_matrix << endl;
system("PAUSE");
return 0; //Einde hoofdprogramma
}
/*------------------------------------------------------------*/
//Function lezen matrix
void lees_matrix(matrix a[MAX_SIZE][MAX_SIZE], int m, int n,int z)
{
int rij, kolom;
for (rij=0; rij<m; rij++)
{
cout << "Voer de data in voor rij "<< rij+1 << endl;
for(kolom=0; kolom<n; kolom++)
{
cin >> a[rij][kolom];
}
z=z+1;
}
for(rij=0; rij<m; rij++)
{
for(kolom=0; kolom<n; kolom++)
{
cout << a[rij][kolom] << " " << endl;
cout << " " << endl;
}
}
return;
}
/*------------------------------------------------------------*/
//Functie voor het vermenigvuldigen van de matrix
void vermenigvuldig(matrix a[MAX_SIZE][MAX_SIZE],matrix b[MAX_SIZE][MAX_SIZE],matrix c[MAX_SIZE][MAX_SIZE], int m, int n, int p)
{
//Declacratie
int i, j, k;
for(i=0; i<m; i++)
{
for(j=0; j<p; j++)
{
c[i][j]=0;
for(k=0; k<n; k++)
{
c[i][j] += a[i][k]*b[k][j];
}
}
}
return;
}
/*------------------------------------------------------------*/
//Functie voor het printen van een matrix
void print_matrix(matrix c[MAX_SIZE][MAX_SIZE], int m,int p)
{
int rij, kolom;
for(rij=0; rij<m; rij++)
{
for(kolom=0; kolom<m; kolom++)
{
cout << c[rij][kolom] << " ";
}
}
return;
}