#include <stdio.h>
#include <stdlib.h>
int main()
{ int m1,n1,m2,n2,sum=0,k;
//Gre Matrix A
printf ("Wieviele Zeilen soll Matrix A haben:");
scanf("%i",&m1);
printf("\nWieviele Spalten soll Matrix A haben:");
scanf("%i",&n1);
//Gre Matrix B
printf ("\nWieviele Zeilen soll Matrix B haben:");
scanf("%i",&m2);
printf("\nWieviele Spalten soll Matrix B haben:");
scanf("%i",&n2);
int A[m1+1][n1+1],B[m2+1][n2+1],i=1,j=1,C[m1+1][n2+1];
//Matrix A init
for (j=0;j<m1;j++)
{for (i=0;i<n1;i++)
{printf("\nGeben Sie den Wert fur Matrix A Zeile%i/Spalte%i ein:",j+1,i+1);
scanf("%i",&A[j]);}}
//Matrix B init
for (j=0;j<m2;j++)
{for (i=0;i<n2;i++)
{printf("\nGeben Sie den Wert fur Matrix B Zeile%i/Spalte%i ein:",j+1,i+1);
scanf("%i",&B[j]);}}
//Matrix A ausgeben
printf("\nSie haben Matrix A wiefolgt initialisiert:\n");
for(j=0; j<m1; j++) {
for(i=0; i<n1; i++) {
printf(" %i ", A[j]);
}
printf("\n");
}
//Matrix B ausgeben
printf("\nSie haben Matrix B wiefolgt initialisiert:\n");
for(j=0; j<m2; j++) {
for(i=0; i<n2; i++) {
printf(" %i ", A[j]);
}
printf("\n");
}
//case abfrage ob Multiplizieren oder Addieren
int fall;
printf("\n Wollen Sie Ihre eingegebenen Matrizen Addieren geben Sie 1 ein:\n Wollen Sie Ihre eingegebenen Matrizen Multiplizieren geben sie 2 ein:\n");
scanf("%i",&fall);
switch (fall)
{//fall 1 Addieren
case 1:
if (m1==m2&& n1==n2&& fall==1)
{
for (j=0;j<m1;j++)
{for (i=0;i<n1;i++)
{A[j]=A[j]+B[j];
}}
printf("\nIhre Matrizen wurden Addiert und es fuehrte zu folgendem Ergebnis:\n");
for(j=0; j<m1; j++)
{
for(i=0; i<n1; i++) {
printf(" %i ", A[j]);
}
printf("\n");
}
}
else
printf("\nEine Addition ist nicht mglich da Ihre Matrizen unterschiedlich gro sind!");
break;
//fall 2 Multiplizieren
case 2:
if(n1==m2)
{ for (j=0;j<m2;j++)
{for (k=0;k<n2;k++)
{for (i=0;i<n1;i++)
sum=sum+A[j]*B[j+k];}
C[j][k]=sum;
}
printf("\nDie Multiplikation ergab folgendes Ergebnis:\n");
for(j=0; j<m1; j++) {
for(i=0; i<n2; i++) {
printf(" %i ", C[j]);
}
printf("\n");
}
}
else
printf("\nEine Multiplikation n ist nicht mglich da die Spaltenanzahl von Matrix A nicht mit der Zeilenanzahl von Matrix B bereinstimmt!");
break;
default : printf("Porgrammfehler");
}
return 0;
}
Das Problem dass ich habe ist bei case 2 die multiplikation funktioniert nicht.
Kuchenmann Gast |