C Fehler bei Matrizenberechnung

Registriert
Jan. 2008
Beiträge
232
Guten Nabend.
Ich bräuchte noch einmal euren Rat.
Ich möchte gerne 2 Matrizen mit einander multiplizieren lassen.

Hab dazu folgenden Code:
Code:
void multiplizieren(double array_a[max_zeile][max_spalte],double array_b[max_zeile][max_spalte], double array_c[max_zeile][max_spalte], int zeile, int spalte)
{
	int index_zeile;
	int index_spalte;
	int index_zeile_02;
	double result = 0;

	for (index_zeile=0; index_zeile < zeile; index_zeile++) 
	{
		for(index_zeile_02=0; index_zeile_02 < zeile; index_zeile_02++)
		{
			for (index_spalte=0; index_spalte < spalte; index_spalte++)
			{
				result += array_a[index_zeile][index_spalte] * array_b[index_spalte][index_zeile_02];
			}
			array_c[index_zeile][index_zeile_02] = result;
		}
	}
}

Er rechnet schon die Werte aus.
Doch anstatt den einzelnen Wert auszugeben, addiert er den neuen Wert auf den alten dazu.
Als Beipiel:
Matrize 1
(1 2)
(3 4)
Matrize 2
(5 6)
(7 8)

Seine Ausgabe ist dann
(19 41)
(84 134)
Richtig wäre
(19 22)
(33 50)

Irgendwo muss da wohl noch ein Bock drin sein...
 
Zuletzt bearbeitet:
Du musst "result" auch immer zurücksetzen. :p
Hier wohl nach der ersten for-Schleife denke ich.
Außerdem musst du auch noch die Werte für die zweite Zeile ausrechnen. Brauchst also noch eine Schleife.

Geh schlafen. :D
 
Zuletzt bearbeitet:
Ich Depp. Jo das sollte man machen. ;)

Und jetzt funktioniert es und ich merke, ich kann noch net mal mehr Kopfrechnen zu so später Stund. xD
 
Ah ich merke gerade deine Spaltengeschichte ist "Zeile02", oder "Zeile"? oO
Naja, die Namen solltest du dringenst ändern.
 
Es gibt auch sowas wie den Debugger, wo man solche Fehler sehr schnell findet.
 
Zurück
Oben