Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.73 KB | None | 0 0
  1. /**********************************************************************\
  2.  
  3. \**********************************************************************/
  4. /*--- #includes ------------------------------------------------------*/
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <time.h>
  8. /*--- #defines -------------------------------------------------------*/
  9. #define MAX 7
  10. /*--- typedef-Datentypen ---------------------------------------------*/
  11. /*--- Funktionsdefinitionen ------------------------------------------*/
  12. int main( void )
  13. {
  14. //Variablendeklaration
  15. float matrixa[MAX][MAX], matrixb[MAX][MAX], matrixc[MAX][MAX];
  16. int i,j,k,retw;
  17. unsigned int a,b,c,d;
  18. int pruef = 0;
  19. //Ein&Ausgabe
  20. /*Einlesung Zeilen/Spalten der Matrizen*/
  21. do
  22. {
  23. label: do
  24. {
  25. pruef = 1;
  26. printf("Wieviele Zeilen und Spalten soll ihre Matrix A haben(Zeilen,Spalten): ");
  27. retw=scanf("%d,%d", &a, &b);
  28. if (retw!=2){
  29. fflush(stdin);
  30. printf("Bitte zwei durch Komma getrennte Zahlen eingeben\n");
  31. goto label;break;
  32.  
  33.  
  34. }
  35. statement:
  36. printf("Wieviele Zeilen und Spalten soll ihre Matrix B haben(Zeilen,Spalten): ");
  37. scanf("%d,%d", &c, &d);
  38. if (retw!=2){
  39. fflush(stdin);
  40. printf("Bitte zwei durch Komma getrennte Zahlen eingeben\n");
  41. goto statement;break;
  42. }
  43. if(b != c)
  44. {
  45. printf("Die Anzahl der Zeilen ist ungleich der Anzahl der Spalten.\n");
  46. pruef = 0;
  47. }
  48. if (a > MAX || b > MAX || c > MAX || d > MAX||a<1 || b<1|| c<1||d <1)
  49. {
  50. printf("Die Anzahl der Zeilen und Spalten muss kleiner als %d sein!\n", MAX);
  51. pruef = 0;
  52. }}
  53. while (retw!=2);
  54. }
  55. while(pruef == 0);
  56. /*Einlesung der Matrix A*/
  57. printf("\n=== Matrix A ===\n");
  58. for(i=1; i<=a; i++)
  59. {
  60. for(j=1; j<=b; j++)
  61. {
  62. printf("Matrix-Element (%d,%d): ",i,j);
  63. pruef = scanf("%f", &matrixa[i][j]);
  64. while(pruef != 1)
  65. {
  66. fflush(stdin);
  67. printf("Falsche Eingabe! Bitte geben Sie einen geeigneten Wert für das Matrix-Element (%d,%d) ein: ",i,j);
  68. pruef = scanf("%f", &matrixa[i][j]);
  69. }
  70. }
  71. }
  72. printf("\n=== Matrix B ===\n");
  73. for(i=1; i<=c; i++)
  74. {
  75. for(j=1; j<=d; j++)
  76. {
  77. printf("Matrix-Element (%d,%d): ",i,j);
  78. pruef = scanf("%f", &matrixb[i][j]);
  79. while(pruef != 1)
  80. {
  81. fflush(stdin);
  82. printf("Falsche Eingabe! Bitte geben Sie einen geeigneten Wert für das Matrix-Element (%d,%d) ein: ",i,j);
  83. pruef = scanf("%f", &matrixb[i][j]);
  84. }
  85. }
  86. }
  87. for(i=1; i <= a; i++)
  88. {
  89. for(j=1; j <= d; j++)
  90. {
  91. matrixc[i][j] = 0;
  92. for(k=1; k <= b; k++)
  93. {
  94. matrixc[i][j] += matrixa[i][k] * matrixb[k][j];
  95. }
  96. }
  97. }
  98. printf("\n=== Matrix a ===\n");
  99. for(i=1; i <= a; i++)
  100. {
  101. for(j=1; j <= b; j++)
  102. {
  103.  
  104. printf("%5.2f%3s", matrixc[i][j]," ");
  105. }
  106. printf("\n");
  107. }
  108. printf("\n=== Matrix b ===\n");
  109. for(i=1; i <= a; i++)
  110. {
  111. for(j=1; j <= d; j++)
  112. {
  113.  
  114. printf("%5.2f%3s", matrixc[i][j]," ");
  115. }
  116. printf("\n");
  117. }
  118. printf("\n=== Matrix c ===\n");
  119. for(i=1; i <= a; i++)
  120. {
  121. for(j=1; j <= d; j++)
  122. {
  123.  
  124. printf("%5.2f%3s", matrixc[i][j]," ");
  125. }
  126. printf("\n");
  127.  
  128. }
  129. return 0;
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement