Program w C ++ do mnożenia dwóch macierzy przy użyciu tablic wielowymiarowych

Ten program przyjmuje dwie macierze odpowiednio rzędu r1 * c1 i r2 * c2. Następnie program mnoży te dwie macierze (jeśli to możliwe) i wyświetla je na ekranie.

Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w języku C ++:

  • Tablice wielowymiarowe w języku C ++
  • Tablice C ++

Aby pomnożyć dwie macierze, liczba kolumn pierwszej macierzy powinna być równa liczbie wierszy do drugiej macierzy. Ten program wyświetla błąd do momentu, gdy liczba kolumn pierwszej macierzy będzie równa liczbie wierszy drugiej macierzy.

Przykład: Mnożenie dwóch macierzy bez użycia funkcji

 #include using namespace std; int main() ( int a(10)(10), b(10)(10), mult(10)(10), r1, c1, r2, c2, i, j, k; cout <> r1>> c1; cout <> r2>> c2; // If column of first matrix in not equal to row of second matrix, // ask the user to enter the size of matrix again. while (c1!=r2) ( cout << "Error! column of first matrix not equal to row of second."; cout <> r1>> c1; cout <> r2>> c2; ) // Storing elements of first matrix. cout << endl << "Enter elements of matrix 1:" << endl; for(i = 0; i < r1; ++i) for(j = 0; j < c1; ++j) ( cout << "Enter element a" << i + 1 << j + 1 <> a(i)(j); ) // Storing elements of second matrix. cout << endl << "Enter elements of matrix 2:" << endl; for(i = 0; i < r2; ++i) for(j = 0; j < c2; ++j) ( cout << "Enter element b" << i + 1 << j + 1 <> b(i)(j); ) // Initializing elements of matrix mult to 0. for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) ( mult(i)(j)=0; ) // Multiplying matrix a and b and storing in array mult. for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) for(k = 0; k < c1; ++k) ( mult(i)(j) += a(i)(k) * b(k)(j); ) // Displaying the multiplication of two matrix. cout << endl << "Output Matrix: " << endl; for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) ( cout << " " << mult(i)(j); if(j == c2-1) cout << endl; ) return 0; ) 

Wynik

Wprowadź wiersze i kolumny dla pierwszej macierzy: 3 2 Wprowadź wiersze i kolumny dla drugiej macierzy: 3 2 Błąd! kolumna pierwszej macierzy nie jest równa wierszowi drugiej. Podaj wiersze i kolumny dla pierwszej macierzy: 2 3 Podaj wiersze i kolumny dla drugiej macierzy: 3 2 Podaj elementy macierzy 1: Podaj elementy a11: 3 Podaj elementy a12: -2 Podaj elementy a13: 5 Podaj elementy a21: 3 Podaj elementy a22 : 0 Podaj elementy a23: 4 Podaj elementy macierzy 2: Podaj elementy b11: 2 Podaj elementy b12: 3 Podaj elementy b21: -9 Podaj elementy b22: 0 Podaj elementy b31: 0 Podaj elementy b32: 4 Wyjściowa macierz: 24 29 6 25

W tym programie użytkownik jest najpierw proszony o wpisanie rozmiaru dwóch matryc.

Kolumna pierwszej macierzy powinna być równa wierszowi drugiej macierzy do mnożenia. Jeśli ten warunek nie jest spełniony, ponownie pytamy o rozmiar macierzy za pomocą pętli while.

Następnie użytkownik jest proszony o wprowadzenie dwóch macierzy, a na koniec obliczane i wyświetlane są wyniki dwóch macierzy.

Ponieważ program jest długi i trudny do debugowania, lepiej jest rozwiązać ten program, przekazując go do funkcji.

Odwiedź tę stronę, aby dowiedzieć się więcej o mnożeniu macierzy przez przekazywanie tablic do funkcji.

Interesujące artykuły...