C operacje na macierzach

0

Siemka mógłby mi ktoś pomóc z mnożeniem macierzy

na razie robię to tak tylko że wychodzą głupoty, z dodawaniem mi się udało, ale mnożenie coś nie idzie

#include <stdio.h>
#include <stdlib.h>

main()
{
        int i, j, k;
        int A[4][4]={{ 2,  3,  5,  0},
                     {-1, -5,  3,  2},
                     { 0,  7, -4,  0},
                     { 2, -5,  0,  2}};

        int B[4][4]={{ 1,  3,  2,  1},
                     { 3, -1,  3,  0},
                     { 0,  0,  4,  5},
                     { 0, -2, -3,  2}};

        int C[4][4];

        for(i=0; i<4; i++)
        {
                for(j=0; j<4; j++)
                {
                        for(k=0; k<4; k++)
                        {
                                C[i][j] = C[i][j] + A[k][j] * B[j][k];
                        }
                }
        }

        for(i=0; i<4; i++)
        {
                for(j=0; j<4; j++)
                {
                        printf("%d ", C[i][j]);
                }
                printf("\n");
        }

        system("pause");

        return 0;
}
0
  1. int C[4][4]; nie jest wyzerowana na początku
  2. C[i][j] = C[i][j] + A[k][j] * B[j][k]; <-- B[i][k]
0

poprawiłem

for(i=0; i<4; i++)
 {
                for(j=0; j<4; j++)
                {
                        C[i][j]=0;
                        for(k=0; k<4; k++)
                        {
                                C[i][j] = C[i][j] + A[i][k] * B[k][j];
                        }
                }
 }

tylko teraz jedna sprawa
mamy i<4, j<4 i k<4 dałem tak ponieważ operuje na tablicach [4][4] więc 2 takie same wymiary
ale jak bym chciał pomnożyć 2 rożne tablice czyli A[4][4] i B[4][5] to już mam problem
proszę o jakaś poradę co do tego

0

A to niby czemu? Jest jeden warunek konieczny, by można było wykonać mnożenie macierzy: liczba kolumn pierwszej macierzy musi być równa liczbie wierszy drugiej macierzy.
Twój przykład spełnia ten warunek.
Wynikiem jest macierz o liczbie wierszy równej liczbie wierszy pierwszej macierzy i liczbie kolumn równej liczbie kolumn drugiej macierzy.

0

sorki, zrobiłem jeden głupi błąd i wyświetlało mi się inaczej niż mi wychodziło w zeszycie ale teraz jest ok i wszystko rozumiem

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0