Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Matrizenmultiplikation

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.01.2009, 12:51 Uhr
~Dolphon
Gast


Hi,

ich bin gerade dabei ein Programm für die Matrizenmultiplikation zuschreiben.
Allerdings habe ich ein Problem bei der Berechnung von MatrixC.
Der erste Wert ist noch richtig. Alle weiteren sind falsch.
Vllt. kann mir hier jemand helfen.

Hier der Code:


C++:
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    int as,az,bs,bz;
    const int max = 2;
    double matrixa [max][max];
    double matrixb [max][max];
    double matrixc [max][max];
    
//Dimensionseingabe

cout<<"Bitte geben sie die Dimension az x as der Matrix A ein.\n\n az: ";
cin>>az;
cout<<"\n as: ";
cin>>as;
cout<<"\n Bitte geben sie die Dimension bz x bs der Matrix B ein.\n bz: ";
cin>>bz;

if (as!=bz)
{
    cout<<"\nSpalten von A muessen dieselbe Anzahl wie die Zeilen von B sein!Fehler\n";
}

cout<<"\n bs: ";
cin>>bs;

//Einlesen von Matrix A

cout << "\n Bitte geben Sie nun die Werte fuer Matrix A ein " << endl;
   for (int i = 0; i < az; i++)
    {    
        cout << "Zeile " << i+1 <<"=" ;
        for (int j = 0; j < as; j++)
        cin >> matrixa[i][j];
    }

// Matrize A zur kontrolle ausgeben
    for (int i = 0; i < az; i++)
    {    
        cout << "\n";
        for (int j = 0; j < as; j++)
        cout << " " << matrixa[i][j];              
    }


// Einlesen von Matrix B

    cout << "\n Bitte geben Sie nun die Werte fuer Matrix B ein " << endl;

    for (int i = 0; i < bz; i++)
    {    
        cout << "Zeile " << i+1 <<"=" ;
        for (int j = 0; j < bs; j++)
        cin >> matrixb[i][j];
    }

// Matrize B zur kontrolle ausgeben
    for (int i = 0; i < bz; i++)
    {    
        cout << "\n";
        for (int j = 0; j < bs; j++)
        cout << " " << matrixb[i][j];        
    }  

//Matrix C berechnen

   for(int f=0; f < az; f++)
     for(int g=0; g < bs; g++)
         //matrixc[f][g] += matrixa[f][g] * matrixb[f][g];  
         matrixc[f][g] = ((matrixa[f][g]*matrixb[f][g])+(matrixa[f][g+1]*matrixb[f+1][g]));



// Matrix C ausgeben

   cout << "\n Das Ergebnis der Multipilkation ist: " << endl;
     for (int i = 0; i < az; i++)
    {    
        cout << "\n";
        for (int j = 0; j < bs; j++)
        cout << " " << matrixc[i][j];        
    }  

    
    
    getch();
    return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: