Multiplikation zweier 3x3-Matrizen in C
Ich versuche multipliziert zwei 3x3-Matrizen. Die ersten 2 zahlen in der ersten
und die zweite Zeile sind die einzig richtige Antwort. Was mache ich
falsch? Ist das Zeug, was ich brauche, erklärte in mult_matrices
?
#include <stdio.h>
void mult_matrices(int a[][3], int b[][3], int result[][3]);
void print_matrix(int a[][3]);
int main()
{
int p[3][3] = {{1, 2, 3},{4, 5, 6}, {7, 8, 9}};
int q[3][3] = {{10, 11, 12}, {13, 14, 15}, {16, 17, 18}};
int r[3][3];
mult_matrices(p, q, r);
print_matrix(r);
}
void mult_matrices(int a[][3], int b[][3], int result[][3])
{
int i, j, k;
for(i = 0; i < 3; i++)
{
for(j = 0; j < 3; j++)
{
for(k = 0; k < 3; k++)
{
result[i][j] += a[i][k] * b[k][j];
}
}
}
}
void print_matrix(int a[][3])
{
int i, j;
for (i = 0; i < 3; i++)
{
for(j = 0; j < 3; j++)
{
printf("%d\t", a[i][j]);
}
printf("\n");
}
}
InformationsquelleAutor james | 2011-04-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht aus wie du bist nicht initialisieren Ihre
result
matrix.d.h.:
zu
sorry! Ich war dabei, ein logischer Fehler. es funktioniert Jetzt! Thanks a bunch
InformationsquelleAutor yan
Stellen Sie sicher, dass Sie initialisieren
r
zu Nullen, bevor Sie es verwenden.InformationsquelleAutor Jeff Foster
Eine Sache, die ich bemerkt, dass Sie das nicht tun wird, initialisieren Sie sind r[3][3] - array. Ich bin nicht sicher, ob dies die Wurzel des Problems, aber es könnte sehr gut sein. Im wesentlichen, was die Werte von r festgelegt ist, was war "übrig" in Erinnerung an diesem Ort. Manchmal werden Sie alle 0 sein, aber wahrscheinlich werden Sie nicht sein. So könnte es sein, das Problem, das Sie haben, aber selbst wenn nicht, ist es gut, immer zu bekommen in die Gewohnheit initialisieren Sie alle Variablen sind.
InformationsquelleAutor bitt3r0blivion
InformationsquelleAutor vipul verma