Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**********************************************************************\
- \**********************************************************************/
- /*--- #includes ------------------------------------------------------*/
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- /*--- #defines -------------------------------------------------------*/
- #define MAX 7
- /*--- typedef-Datentypen ---------------------------------------------*/
- /*--- Funktionsdefinitionen ------------------------------------------*/
- int main( void )
- {
- //Variablendeklaration
- float matrixa[MAX][MAX], matrixb[MAX][MAX], matrixc[MAX][MAX];
- int i,j,k,retw;
- unsigned int a,b,c,d;
- int pruef = 0;
- //Ein&Ausgabe
- /*Einlesung Zeilen/Spalten der Matrizen*/
- do
- {
- label: do
- {
- pruef = 1;
- printf("Wieviele Zeilen und Spalten soll ihre Matrix A haben(Zeilen,Spalten): ");
- retw=scanf("%d,%d", &a, &b);
- if (retw!=2){
- fflush(stdin);
- printf("Bitte zwei durch Komma getrennte Zahlen eingeben\n");
- goto label;break;
- }
- statement:
- printf("Wieviele Zeilen und Spalten soll ihre Matrix B haben(Zeilen,Spalten): ");
- scanf("%d,%d", &c, &d);
- if (retw!=2){
- fflush(stdin);
- printf("Bitte zwei durch Komma getrennte Zahlen eingeben\n");
- goto statement;break;
- }
- if(b != c)
- {
- printf("Die Anzahl der Zeilen ist ungleich der Anzahl der Spalten.\n");
- pruef = 0;
- }
- if (a > MAX || b > MAX || c > MAX || d > MAX||a<1 || b<1|| c<1||d <1)
- {
- printf("Die Anzahl der Zeilen und Spalten muss kleiner als %d sein!\n", MAX);
- pruef = 0;
- }}
- while (retw!=2);
- }
- while(pruef == 0);
- /*Einlesung der Matrix A*/
- printf("\n=== Matrix A ===\n");
- for(i=1; i<=a; i++)
- {
- for(j=1; j<=b; j++)
- {
- printf("Matrix-Element (%d,%d): ",i,j);
- pruef = scanf("%f", &matrixa[i][j]);
- while(pruef != 1)
- {
- fflush(stdin);
- printf("Falsche Eingabe! Bitte geben Sie einen geeigneten Wert für das Matrix-Element (%d,%d) ein: ",i,j);
- pruef = scanf("%f", &matrixa[i][j]);
- }
- }
- }
- printf("\n=== Matrix B ===\n");
- for(i=1; i<=c; i++)
- {
- for(j=1; j<=d; j++)
- {
- printf("Matrix-Element (%d,%d): ",i,j);
- pruef = scanf("%f", &matrixb[i][j]);
- while(pruef != 1)
- {
- fflush(stdin);
- printf("Falsche Eingabe! Bitte geben Sie einen geeigneten Wert für das Matrix-Element (%d,%d) ein: ",i,j);
- pruef = scanf("%f", &matrixb[i][j]);
- }
- }
- }
- for(i=1; i <= a; i++)
- {
- for(j=1; j <= d; j++)
- {
- matrixc[i][j] = 0;
- for(k=1; k <= b; k++)
- {
- matrixc[i][j] += matrixa[i][k] * matrixb[k][j];
- }
- }
- }
- printf("\n=== Matrix a ===\n");
- for(i=1; i <= a; i++)
- {
- for(j=1; j <= b; j++)
- {
- printf("%5.2f%3s", matrixc[i][j]," ");
- }
- printf("\n");
- }
- printf("\n=== Matrix b ===\n");
- for(i=1; i <= a; i++)
- {
- for(j=1; j <= d; j++)
- {
- printf("%5.2f%3s", matrixc[i][j]," ");
- }
- printf("\n");
- }
- printf("\n=== Matrix c ===\n");
- for(i=1; i <= a; i++)
- {
- for(j=1; j <= d; j++)
- {
- printf("%5.2f%3s", matrixc[i][j]," ");
- }
- printf("\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement