[C++] Mnożenie macierzy
Ostatnio zmodyfikowano 2015-11-11 17:05
malyryc Temat założony przez niniejszego użytkownika |
[C++] Mnożenie macierzy » 2015-11-11 17:05:18 Witam, napisałem program mnożący macierze, lecz niestety program wywala błąd, jeśli to możliwe proszę o wskazanie błędu w moim rozumowaniu. #include <iostream> #include <stdio.h> #include <time.h> #include <cstdlib>
int x, y, a, b;
using namespace std; int main() { srand( time( NULL ) ); cout << "podaj liczbe wierszy i kolumn macierzy nr 1\n"; cin >> x >> y; cout << endl; int ** tablica = new int *[ x ]; for( int i = 0; i < x; i++ ) tablica[ i ] = new int[ y ]; for( int i = 0; i < x; i++ ) { for( int j = 0; j < y; j++ ) { tablica[ i ][ j ] = rand() % 10; cout << tablica[ i ][ j ] << " "; } cout << endl; } cout << "\n\npodaj liczbe wierszy i kolumn macierzy nr 2\n"; cin >> a >> b; cout << endl; int ** tablica2 = new int *[ a ]; for( int i = 0; i < a; i++ ) tablica2[ i ] = new int[ b ]; for( int i = 0; i < a; i++ ) { for( int j = 0; j < b; j++ ) { tablica2[ i ][ j ] = rand() % 10; cout << tablica2[ i ][ j ] << " "; } cout << endl; } cout << endl << endl; int ** wynik = new int *[ x ]; for( int i = 0; i < x; i++ ) wynik[ i ] = new int[ b ]; for( int i = 0; i < x; i++ ) { for( int j = 0; j < b; j++ ) { wynik[ i ][ j ] = 0; for( int k = 0; k < b; k++ ) { wynik[ i ][ j ] += tablica[ i ][ k ] * tablica2[ k ][ j ]; cout << wynik[ i ][ j ] << " "; } } cout << endl; } for( int i = 0; i < x; i++ ) delete[] tablica[ i ]; delete[] tablica; for( int i = 0; i < a; i++ ) delete[] tablica2[ i ]; delete[] tablica2; for( int i = 0; i < x; i++ ) delete[] wynik[ i ]; delete[] wynik; return 0; }
|
|
« 1 » |