Skocz do zawartości
kroll44

Szukam Myku Na Mnożenie Macierzy!

Rekomendowane odpowiedzi

int mnozenie(int t1[100][100],int t2[100][100],int t3[100][100],unsigned a,unsigned B)

{

unsigned i,j,k;

 

 

for(i=0;i<a;i++)

{

for(j=0;j<b;j++)

{

t3[j]=0;

for(k=0;k<a;k++)

{

t3[j]= t3[j]+t1[k]*t2[k][j];

}

}

}

return(t3[j]);

}

 

gdzie a wiersze, b kolumny

 

 

Witam, mam lekki problemik z tą funkcją w C, ale zaczne od początku...

...funkcja działa ładnie, pięknie, ale tylko dla macierzy o identycznych wymiarach(wiadomo, że ilość kolumn t1 musi być równa ilości wierszy t2) ale pozostałe parametry macierzy mogą być różne.I tu pojawia się moje pytanie: podejrzewam że sa jakieś myki ktore mnożą wszystkie macierze, ale jak to zrobić?

Bardzo prosze o jakieś komentarze dotyczące tego problemu, lub wskazówki jak go podrasować, a może zupełnie zmienic kod?

 

Z góry dzięki, pozdro

Kuba

 

 

PS .

Przy cytowniu kodu proszę używać tagów bbcode ,


,

i


.

 

JAK SIĘ TO ROBI????

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zamiast tablic dwuwymiarowych, możesz używac tablic pozornie jednowymiarowych, i samemu obliczać pozycje elementów o zadanych indeksach.

Załóżmy, że macierze przechowujemy wierszami. Alokujemy tablicę o n wierszach i m kolumnach:

int *mac1 = (int *) malloc(n * m * sizeof(int));

Odwołanie do elementu w i-tym wierszu i j-tej tablicy:

int element = mac1[i * m + j];

Zamiast przekazywać tablice o rozmiarach 100 na 100, trzeba więc przekazywać wskaźniki do tablic (wcześniej oczywiście zaalokowane i zainicjowane), oraz rozmiary tych macierzy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...