fannyxmikasa

Matrix Multiplication

May 15th, 2020 (edited)
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.83 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <conio.h>
  3.  
  4. #define cls system("cls");
  5. int main()
  6. {
  7.    
  8.     int m1[10][10] ={0},m2[10][10] = {0},m[10][10];
  9.     int row[2],col[2],i = 0,j = 0,k,n,val[10];
  10.    
  11.     while(1)
  12.     {
  13.         printf("Enter row of Matrix %d: ",i+1);
  14.         scanf("%d",&row[i]);
  15.         printf("Enter col of Matrix %d: ",i+1);
  16.         scanf("%d",&col[i]);
  17.         i++;
  18.         if(i == 2)
  19.         {  
  20.             if(col[0] == row[1])
  21.                 break;
  22.             else
  23.             {   printf("size didn't match");
  24.                 i = 0;
  25.                 getch();
  26.             }
  27.         }cls
  28.     }
  29.     /*Fill Matrix 1*/cls
  30.     for(i = 0;i < row[0];i++)
  31.         for(j = 0;j < col[0];j++)
  32.         {  
  33.             printf("Element in [%d][%d]: ",i+1,j+1);
  34.             scanf("%d",&m1[i][j]);
  35.         }
  36.            
  37.     /*Fill Matrix 2*/cls
  38.     for(i = 0;i < row[1];i++)
  39.         for(j = 0;j < col[1];j++)
  40.         {  
  41.             printf("Element in [%d][%d]: ",i+1,j+1);
  42.             scanf("%d",&m2[i][j]); 
  43.         }
  44.     cls/*display*/
  45.            
  46.     printf("Matrix 1:\n");
  47.     for(i = 0;i < row[0];i++,putchar('\n'))
  48.         for(j = 0;j < col[0];j++)
  49.             printf("%d ",m1[i][j]);
  50.            
  51.     printf("\nMatrix 2:\n");
  52.     for(i = 0;i < row[1];i++,putchar('\n'))
  53.         for(j = 0;j < col[1];j++)
  54.             printf("%d ",m2[i][j]);
  55.            
  56. printf("\n");//computation
  57. for(i = 0;i < row[0];i++)
  58. {  
  59.     for(j = 0;j < col[1];j++,putchar('\n'))
  60.     {  
  61.         printf("[%d][%d] = ",i+1,j+1);
  62.         for(k = 0;k < row[1];k++)
  63.         {  
  64.             n += m1[i][k] * m2[k][j];
  65.             val[k] = m1[i][k] * m2[k][j];
  66.            
  67.         if(k < row[1]-1)
  68.             printf("(%d x %d) + ",m1[i][k],m2[k][j]);
  69.         else
  70.             printf("(%d x %d) ",m1[i][k],m2[k][j]);
  71.         }
  72.         printf("\n[%d][%d] = ",i+1,j+1);
  73.        
  74.         for(int l = 0;l < row[1];l++)
  75.             {  
  76.                 if(l < row[1]-1)
  77.                 printf("%d + ",val[l]);
  78.                 else
  79.                 printf("%d  ",val[l]);
  80.             }
  81.         printf("\n[%d][%d] = %d\n",i+1,j+1,n);
  82.         m[i][j] = n;
  83.         n = 0;
  84.     }
  85. }
  86.        
  87.     printf("Answer: \n");
  88.     for(i = 0;i < row[0];i++,putchar('\n'))
  89.     {  
  90.         for(j = 0;j < col[1];j++)
  91.             printf("%d ",m[i][j]);
  92.     }
  93. return 0;
  94. }
Add Comment
Please, Sign In to add comment