Cześć, poprosze tu jakiegoś eksperta od c++, otóż właśnie skończyłem główkować nad mnożeniem macierzy kwadratowych w c++, tyle że program ma mase linijek powtarzajacych i pytanko czy dało by sie go jakoś uprościć ?
Myślałem teżnad wywołaniem osobnych funkcji na wpisywanie danych i inne działania tylko nie wiem jak to zrobić żeby spowtorem zwróciło w wartość do int main(){} poratuje ktoś sposobem ?
#include <iostream>
using namespace std;
int w, k, a,j,n,i;
int main()
{
cout << "Podaj ilosc wierszy dla 1 i 2 macierzy : ";
cin >> w;
cout << endl << "Podaj ilosc kolumn dla 1 i 2 macierzy : ";
cin >> k; cout << endl;
int mA[w][k], mB[w][k],mC[w][k];
cout << "Wypelnimy teraz 1 macierz" << endl;
for (i = 0; i < w; i++) // wpisywanie liczb do macierzy
{
for (j = 0; j < k; j++)
{
cout << "Podaj wartosc dla indeksu" << i << "x" << j << endl;
cin >> a;
mA[i][j] = a;
}
}
cout << endl << "Wypelnimy teraz 2 macierz" << endl
;
for (i = 0; i < w; i++) // wpisywanie liczb do macierzy
{
for (j = 0; j < k; j++)
{
cout << "Podaj wartosc dla indeksu" << i << "x" << j << endl;
cin >> a;
mB[i][j] = a;
}
}
for (i=0; i<w; i++) //wyswietlanie macierzy
{
cout << " |";
for(j=0; j<k; j++)
{
cout << " " << mA[i][j];
}
cout << " |" << endl;
}
cout << endl;
for (i=0; i<w; i++) //wyswietlanie macierzy
{
cout << " |";
for(j=0; j<k; j++)
{
cout << " " << mB[i][j];
}
cout << " |" << endl;
}
cout << endl;
for (i=0; i<w; i++) //mnozenie macierzy
{
for(j=0; j<k; j++)
{
mC[i][j]=0;
for(n=0; n<k; n++)
{
mC[i][j]=(mA[i][n]*mB[n][j])+mC[i][j];
}
cout << endl;
}
}
for (i=0; i<w; i++) //wyswietlanie macierzy
{
cout << " |";
for(j=0; j<k; j++)
{
cout << " " << mC[i][j];
}
cout << " |" << endl;
}
return 0;
}