кодесурса
«C

Упражнения на С: умножение двух матриц

script1adsense2code
script1adsense3code

C Массив: упражнение 21 с решением

Напишите программу на C для умножения двух квадратных матриц.

Иллюстрированная презентация:

«C

Пример решения:

Код C:

#include <stdio.h>
void main()
{
  int arr1[50][50],brr1[50][50],crr1[50][50],i,j,k,r1,c1,r2,c2,sum=0;
  
       printf("\n\nMultiplication of two Matrices :\n");
       printf("----------------------------------\n");  
  
  printf("\nInput the rows and columns of first matrix : ");
  scanf("%d %d",&r1,&c1);
  printf("\nInput the rows and columns of second matrix : ");
  scanf("%d %d",&r2,&c2);
  if(c1!=r2){
      printf("Mutiplication of Matrix is not possible.");
      printf("\nColumn of first matrix and row of second matrix must be same.");
  }
  else
      {
       printf("Input elements in the first matrix :\n");
       for(i=0;i<r1;i++)
        {
            for(j=0;j<c1;j++)
            {
	           printf("element - [%d],[%d] : ",i,j);
	           scanf("%d",&arr1[i][j]);
            }
        }   
       printf("Input elements in the second matrix :\n");
       for(i=0;i<r2;i++)
        {
            for(j=0;j<c2;j++)
            {
	           printf("element - [%d],[%d] : ",i,j);
	           scanf("%d",&brr1[i][j]);
            }
        }    
 	 printf("\nThe First matrix is :\n");
  		for(i=0;i<r1;i++)
    		{
      		printf("\n");
      		for(j=0;j<c1;j++)
          	printf("%d\t",arr1[i][j]);
    		}
  
  	printf("\nThe Second matrix is :\n");
  		for(i=0;i<r2;i++)
    		{
      		printf("\n");
      		for(j=0;j<c2;j++)
      		printf("%d\t",brr1[i][j]);
    		}
//multiplication of matrix
      for(i=0;i<r1;i++)
          for(j=0;j<c2;j++)
           crr1[i][j]=0;
             for(i=0;i<r1;i++)    //row of first matrix
                 { 
                   for(j=0;j<c2;j++)    //column of second matrix
                     {  
                       sum=0;
                         for(k=0;k<c1;k++)
                           sum=sum+arr1[i][k]*brr1[k][j];
                           crr1[i][j]=sum;
                     }
                 }
  printf("\nThe multiplication of two matrices is : \n");
  for(i=0;i<r1;i++)
     {
        printf("\n");
        for(j=0;j<c2;j++)
         {
           printf("%d\t",crr1[i][j]);
         }
     }
  }
printf("\n\n");
}

Пример вывода:

 Умножение двух матриц:                                                                              
----------------------------------                                                                            
                                                                                                              
Введите строки и столбцы первой матрицы: 2                                                                
2                                                                                                             
                                                                                                              
Введите строки и столбцы второй матрицы: 2                                                               
2                                                                                                             
Входные элементы в первой матрице:                                                                          
элемент - [0], [0]: 1                                                                                         
элемент - [0], [1]: 2                                                                                         
элемент - [1], [0]: 3                                                                                         
элемент - [1], [1]: 4                                                                                         
Входные элементы во второй матрице:                                                                         
элемент - [0], [0]: 5                                                                                         
элемент - [0], [1]: 6                                                                                         
элемент - [1], [0]: 7                                                                                         
элемент - [1], [1]: 8 
Первая матрица:                                                                                         
                                                                                                              
1 2                                                                                                     
3 4                                                                                                     
Вторая матрица:                                                                                        
                                                                                                              
5 6                                                                                                     
7 8                                                                                                     
Умножение двух матриц:                                                                       
                                                                                                              
19 22                                                                                                    
43 50                                          

Блок - схема:

«Блок-схема:

Редактор кода программирования C:

Улучшите этот пример решения и опубликуйте свой код через Disqus.

Предыдущий: Напишите программу на C для вычитания двух матриц.
Далее: написать программу на C, чтобы найти транспонирование данной матрицы.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code