[C++]Mnozenie macierzy - nie dziala - program sie zawiesza

0

Napisalem sobie proste mnozenie 2 macierzy i przy uruchomieniu nic mi nie wypisuje, tylko pisze, ze program przestal dzialac :/ Gdzie jest blad, bo ja go nie widze? Na kartce sobie policzylem, jakie powinienem miec wyniki, i dalem je nizej w komentarzu. Pomocy!

#include <iostream>
using namespace std;

int main(int argc, char **argv){
    
    int w1, w2, k1, k2;
    w1 = 3, k1 = 3;
    w2 = 1, k2 = 3;
    
    int **macierz1 = new int*[w1];
    for(int i=0; i<w1; i++)
        macierz1[i] = new int[k1];

    int **macierz2 = new int*[w2];
    for(int i=0; i<w2; i++)
        macierz2[i] = new int[k2];

    int **wynikowa= new int*[w2];
    for(int i=0; i<w2; i++)
        wynikowa[i] = new int[k2];
        
        macierz2[0][0] = 4;
        macierz2[0][1] = 5;
        macierz2[0][2] = 1;

        macierz1[0][0] = 1;
        macierz1[0][1] = 0;
        macierz1[0][2] = 0;
        macierz1[1][0] = 0;
        macierz1[1][1] = 1;
        macierz1[1][2] = 0;
        macierz1[2][0] = 1;
        macierz1[2][1] = 1;
        macierz1[2][2] = 1;
       
    int suma = 0;
     
    for(int i=0; i<w1; i++)
    {
     for(int j=0; j<k2; j++)
     {
      suma = 0;
      for(int k=0; k<w2; k++)
      {
       suma += macierz2[i][k] * macierz1[k][j];
      }//for k
       wynikowa[i][j] = suma;
     }//for j
    }//for i
    
    //powinno wypisac 5,6,1
    cout << wynikowa[0][0] << endl;
    cout << wynikowa[0][1] << endl;
    cout << wynikowa[0][2] << endl;
    
    return 0;
}
0

w2 = 1? Czy nie powinno być 3?

0

Chyba jest ok, (dziala i wypisuje to co chcialem), jakby co bede pisal ;) Pozdro

1 użytkowników online, w tym zalogowanych: 0, gości: 1