Meseriasul

Inmultirea matricelor

Jan 11th, 2015
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.24 KB | None | 0 0
  1. //Inmultirea matricElor(conform dex pluralul de la matrice este : matrice)
  2. #include <stdio.h>
  3.  
  4. void main(){
  5.     int i,j,n,m,a[50][50], b[50][50], s, t;
  6.  
  7.     printf("Dati matricea A: \n");
  8.  
  9.     printf("Numarul de linii:");    scanf("%d", &n);
  10.     printf("Numarul de coloane: "); scanf("%d", &m);
  11.  
  12.     for(i = 1; i <= n ; i++){
  13.         for(j = 1; j <= m; j++){
  14.             printf("a[%d][%d] = ", i, j);
  15.             scanf("%d", &a[i][j]);
  16.         }
  17.     }
  18.  
  19.     printf("\nDati matricea B \n");
  20.  
  21.     printf("Numarul de linii:");     scanf("%d", &s);
  22.     printf("Numarul de coloane: ");  scanf("%d", &t);
  23.  
  24.     for(i = 1; i <= s ; i++){
  25.         for(j = 1; j <= t; j++){
  26.             printf("b[%d][%d] = ", i, j);
  27.             scanf("%d", &b[i][j]);
  28.         }
  29.     }
  30.  
  31.     if(m != s){
  32.         printf("Matricele date nu se pot inmulti. \n");
  33.         return;
  34.     }
  35.  
  36.     int c[50][50], cn, cm, suma = 0, k;
  37.     cn = n;  //numarul de LINII ale matricei rezultante C
  38.     cm = t;  //numarul de COLOANE ale matricei rezultante C
  39.  
  40.     // j de la matricea A este egal cu i de la matricea B
  41.  
  42.     for(i = 1; i <= n ; i++){
  43.         for(k = 1; k <= t; k++){
  44.             suma = 0;
  45.             for(j = 1; j <= m; j++){
  46.                 suma += a[i][j] * b[j][k];
  47.             }
  48.             c[i][k] = suma;
  49.         }
  50.     }
  51.  
  52.  
  53.     for(i = 1; i <= cn; i++){
  54.         for(j = 1; j <= cm; j++){
  55.             printf("%2d ", c[i][j]);
  56.         }
  57.         printf("\n");
  58.     }
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment