mnożenie macierzy - dlaczego nie działa?

0

Witam,
Próbowałam najprostszą metodą napisać program, który pomnoży mi macierze 3x3. Oto fragment kodu:

   //macierz numer jeden
    printf("Mnozenie. \nPodaj macierz numer jeden wpisujac rzedami od gornego, lewego rogu\n");
    scanf("%d %d %d %d %d %d %d %d %d", &d[0], &d[1], &d[2], &d[3], &d[4], &d[5], &d[6], &d[7], &d[8]);

    printf("%d %d %d\n",   d[0], d[1], d[2]);
    printf("%d %d %d\n",   d[3], d[4], d[5]);
    printf("%d %d %d\n\n", d[6], d[7], d[8]);
    
    //macierz numer dwa
     printf("Podaj macierz numer dwa wpisujac rzedami od gornego, lewego rogu\n");
    scanf("%d %d %d %d %d %d %d %d %d", &e[0], &e[1], &e[2], &e[3], &e[4], &e[5], &e[6], &e[7],&e[8]);

    printf("%d %d %d\n",   e[0], e[1], e[2]);
    printf("%d %d %d\n",   e[3], e[4], e[5]);
    printf("%d %d %d\n\n", e[6], e[7], e[8]);
    
    //wynik
    printf("Wynik\n");
    f[0]=(d[0]*e[0])+(d[1]*e[3])+(d[2]*d[6]);
    f[1]=(d[0]*e[1])+(d[1]*e[4])+(d[2]*e[7]);
    f[2]=(d[0]*e[2])+(d[1]*e[5])+(d[2]*e[8]);
    
    f[3]=(d[3]*e[0])+(d[4]*e[3])+(d[5]*e[6]);
    f[4]=(d[3]*e[1])+(d[4]*e[4])+(d[5]*e[7]);
    f[5]=(d[3]*e[2])+(d[4]*e[5])+(d[5]*e[8]);
    
    f[6]=(d[6]*e[0])+(d[7]*e[3])+(d[8]*e[6]);
    f[7]=(d[6]*e[1])+(d[7]*e[4])+(d[8]*e[7]);
    f[8]=(d[6]*e[2])+(d[7]*e[5])+(d[8]*e[8]);
    
    printf("%d %d %d\n",   f[0], f[1], f[2]);
    printf("%d %d %d\n",   f[3], f[4], f[5]);
    printf("%d %d %d\n\n", f[6], f[7], f[8]);
  

Wszystko mnoży poprawnie, z wyjątkiem pierwszego wiersza. Wie ktoś gdzie ukrywa się błąd? Bo już chyba sprawdziłam wszystkie opcje, jakie przyszły mi do głowy.

0

A o pętlach słyszalaś?

0

Masz na myśli uzupełnianie tablicy? Tak, słyszałam. Jednak nie tej kwestii dotyczy mój problem.

0

Jakie uzupełnianie tablicy? Lol, jak będziesz mieć macierze 1000x100000 to też będziesz je po kolei wymnażać?

0

mam konkretnie taki programik i nie potrzebuję rad jak sprawić, by kod stał się ładniejszy, tylko chcę wiedzieć DLACZEGO ŹLE MNOŻY PIERWSZY WIERSZ. Przeglądanie sposobów na rozwiązanie innych osób mi nie pomoże, bo szukam błędu, który powstał w moim programie, podczas mojego myślenia nad nim.

0

f[0]=(d[0]*e[0])+(d[1]e[3])+(d[2] d e [6]);

0

A ja od trzech godzin się na to gapię i nie widziałam... Dzięki raz jeszcze!

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