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.