[C] Mnożenie macierzy.

Michal99
Użytkownik
Użytkownik
Posty: 95
Rejestracja: 12 wrz 2010, o 17:27
Płeć: Mężczyzna
Podziękował: 49 razy

[C] Mnożenie macierzy.

Post autor: Michal99 »

Witam. Proszę o pomoc dot. mnożenia macierzy. Możecie mi podpowiedzieć, w której linijce znajduje się błąd? Obstawiam, że dotyczy on warunków w pętli do mnożenia macierzy, w pętli for(k...).

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 2
#define M 3
#define K 4
int main(void)
{
	int A[N][M], B[M][K], i, j, k, C[N][K], c;

	srand(time(NULL));
	//pierwsza macierz
	for(i=0; i<N; i++)
	{
		for(j=0; j<M; j++)
		{
			A[i][j]=rand()%11;
			printf("%3d", A[i][j]);
		}
		printf("
");
	} 

	printf("
");

	//druga macierz
	for(i=0; i<M; i++)
	{
		for(j=0; j<K; j++)
		{
			B[i][j]=rand()%11;
			printf("%3d", B[i][j]);
		}
		printf("
");
	}
	//zerowanie 
	for(i=0; i<N; i++)
		for(j=0; j<K; j++)
			C[i][j]=0;

	//mnożenie macierzy
	
	for(i=0; i<N; i++)
	{
		for(j=0; j<K; j++)
		{
			c=0;
			for(k=0; k<N; k++)
			{
				c=c+A[i][k]*B[k][i];
			
			}
			C[i][j]=c;

		}

	}
	printf("
");
	//wyswietlanie trzeciej macierzy
	for(i=0; i<N; i++)
	{
		for(j=0; j<K; j++)
		{
			printf("%3d", C[i][j]);
		}
		printf("
");
	}


	system("PAUSE");
	return 0;
}
lemoid
Użytkownik
Użytkownik
Posty: 199
Rejestracja: 24 maja 2012, o 23:36
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 5 razy
Pomógł: 30 razy

[C] Mnożenie macierzy.

Post autor: lemoid »

Kod: Zaznacz cały

   for(i=0; i<N; i++)
   {
      for(j=0; j<K; j++)
      {
         c=0;
         for(k=0; k<N; k++)
         {
            c=c+A[i][k]*B[k][i] //tu powinno być B[k][j]         
         }
         C[i][j]=c;

      }

   }
Michal99
Użytkownik
Użytkownik
Posty: 95
Rejestracja: 12 wrz 2010, o 17:27
Płeć: Mężczyzna
Podziękował: 49 razy

[C] Mnożenie macierzy.

Post autor: Michal99 »

Dzięki za pomoc.
ODPOWIEDZ