Jest jakiś algorytm, sposób na to? Mam tak zadaną macierz i nie mogę nic wymyślić, próbowałam przepisywać do dwóch pomocniczych macierzy dwuwymiarowych ale z jakiegoś powodu to też nie działa.
class Macierz{
int *wsk;
int rozmiar;
public:
Macierz operator * (Macierz b){
Macierz pom;
int pomarray1[rozmiar][rozmiar],pomarray2[rozmiar][rozmiar],x=0,z=0;
if (rozmiar==b.rozmiar){
pom.rozmiar = rozmiar;
for (int i=0;i<rozmiar;i++){
for (int j=0;j<rozmiar;j++){
pomarray1[i][j] = wsk[x];
pomarray2[i][j] = b.wsk[x];
x++;
}
}
cout << pomarray1 << pomarray2 <<endl;
for (int k=0;k<rozmiar;k++){
for (int l=0;l<rozmiar;l++){
pom.wsk[z]=0;
for (int m=0;m<rozmiar;m++){
pom.wsk[z] += pomarray1[k][m]*pomarray2[m][l];
}
z++;
}
}
}
return pom;
}
};
Kod się kompiluje ale gdzieś jest błąd bo nie działa tak jak powinien, doszłam do tego że jest on w przepisywaniu tablicy jednowymiarowej do dwuwymiarowej. Niżej przepisanie tablicy[9] do tablicy [3][3], ktoś wie czemu nie działa?
#include <iostream>
#include <stdio.h>
using namespace std;
int main(){
int tab1[9];
int tab2[3][3];
int x,m;
for (int i=0;i<9;i++){
scanf("%d",&tab1[i]);
}
for (int j=0;j<9;j++){
cout << tab1[j] <<endl;
}
for (int k=0;k<3;k++){
for (m=0;m<3;m++){
tab2[k][m] = tab1[x];
x = x+1;
}
}
for (int l=0;l<3;l++){
for (int n=0;n<3;n++){
cout << tab2[l][n] << endl;
}
}
return 0;
}