Ich habe diesen Basiscode für meine Schulklasse geschrieben. Der Code wird ausgeführt, berechnet die multiplizierte Matrix jedoch nicht korrekt. Soweit ich das beurteilen kann, ist nichts falsch, aber deshalb bin ich hier. Es gibt mir Zahlen in Millionenhöhe.
Danke für jede Hilfe, die jemand zur Verfügung stellen kann.Multiplizierende Matrizen geben keine richtige Antwort
Ich denke, dass dieser Multiplikationsteil stimmt, was ich an anderer Stelle in diesen Foren gelesen habe.
#include<stdio.h>
int main()
{
int a[10][10], c[10][10], i, j, k;
int sum = 0;
printf("Enter your values for the 2x4 matrix:\n");
for (i = 0; i < 4; i++)
{
for (j = 0; j < 2; j++)
{
scanf("%d", &a[i][j]);
}
}
int b[3][3];
b[0][0]=2;
b[1][0]=41;
b[2][0]=12;
b[3][0]=15;
b[0][1]=7;
b[0][2]=34;
b[0][3]=3;
b[1][1]=32;
b[2][1]=1;
b[3][1]=5;
b[1][2]=13;
b[1][3]=6;
b[2][2]=0;
b[3][2]=7;
b[2][3]=11;
b[3][3]=9;
for (i = 0; i <= 3; i++)
{
for (j = 0; j <= 1; j++)
{
sum = 0;
for (k = 0; k <= 2; k++)
{
sum = sum + a[i][k] * b[k][j];
}
c[i][j] = sum;
}
}
printf("Multiplication Of Two Matrices: \n");
for (i = 0; i < 2; i++)
{
for (j = 0; j < 4; j++)
{
printf(" %d ", c[i][j]);
}
printf("\n");
}
return 0;
}
Sie Ihre Array-Grenzen in 'b' zu verletzen, und als solche rufenden * undefiniert Verhalten *. "b" wird als "int b [3] [3]" deklariert. Das erste Element ist "b [0] [0]", das letzte ist "b [2] [2]". Alles mit einer "3" oder größer in * entweder * tiefgestellten Position ist falsch. – WhozCraig
Größe der Matrix 'b' ist' int b [3] [3]; 'Sie können nicht ausführen b [0] [3] = 3;', 'b [1] [3] = 6;', 'b [2] [3] = 11; 'und' b [3] [3] = 9; 'Da die Größe 3x3 ist, können Sie auf Index 0,1 und 2 zugreifen. – Himanshu
Matrix A ist 4 * 2. Sie brauchen Matrix B um 2 * n zu multiplizieren. Dann ist die resultierende Matrix von der Größe 4 * n –