Функция: подсчёт произведения двух матриц - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Я сделал программу для подсчёта произведения двух матриц, но мне надо через функцию. Пожалуйста подскажите как сделать. Уже 10 дней изучаю материал, но до меня не доходит. Заранее большое спасибо...
#include <stdio.h>
#include <locale.h>
#include <conio.h>
int k,m,i,j,n,h,;
 
main ( )
{
   setlocale(LC_ALL,"Rus");//устанавливает русский язык 
   printf ("\n Введите элемент k ", k);
   scanf ("%d",&k);
   printf ("\n Введите элемент m ", m);
   scanf ("%d",&m);
   printf ("\n Введите элемент n ", n);
   scanf ("%d",&n);
   int A[k] [m], B[m] [n], C[k][n]; // описание матрицы A и B
// ввод матрицы А                    
   printf("\n Ввод матрицы А:");
   for (i = 0; i < k; i++) 
   {
     for (j = 0; j < m; j++) 
       {
          printf("\n Введите элемент A [%d][%d]=", i, j);
          scanf("%d", &A[i][j]);
       }
   }
// ввод матрицы В      
      printf("\n Ввод матрицы В:");
      for (i = 0; i < m; i++) 
   { 
      for (j = 0; j < n; j++) 
        {
           printf("\n Введите элемент B [%d][%d]=", i, j);
           scanf("%d", &B[i][j]);
        }
   }  
//вывод матрицы А   
   {
      printf("\n Матрица A");
      printf ("\n");
   }
     for (i=0; i<k; i++)             
     { 
        for (j=0; j<m; ++j)
        printf(" %3d", A[i][j]);
        printf("\n");
     }
//вывод матрицы В
   {
      printf("\n Матрица В");
      printf ("\n");
   }
      for (i=0; i<m; i++)             
        { 
           for (j=0; j<n; ++j)
           printf(" %3d", B[i][j]);
           printf("\n");
        }
//вывод матрицы С(А*В)        
      printf("\n Произведение матрицы А и В:");
      printf ("\n");
      for(i = 0; i < k; i++){
      for(j = 0; j < n; j++)
       {
          C[i][j] = 0;
          for(h = 0; h < n; h++)
          C[i][j] += A[i][h] * B[h][j];
          printf("%5d", C[i][j]); 
       }
       printf("\n");
    }
   getch(); //задержка окна консоли
   return 0; //повтор программы не выполнять 
}

Решение задачи: «Функция: подсчёт произведения двух матриц»

textual
Листинг программы
void enter_arr(int *A, int k, int m)
{              
    int i, j;
    printf("\n Ввод матрицы А:");
    for (i = 0; i < k; i++) {
        for (j = 0; j < m; j++) {
            printf("\n Введите элемент A [%d][%d]=", i, j);
            scanf("%d", &A[i][j]);
        }
    }
}
 
int main()
{
    ...
    enter_arr(A, k, m); //вместо ввода для матрицы А
    enter_arr(B, m, n); //вместо ввода для матрицы B
    ...
}

Объяснение кода листинга программы

  1. В функции enter_arr происходит ввод элементов матрицы A с помощью функции scanf.
  2. В функции main вызывается функция enter_arr для ввода матрицы A и B.
  3. После ввода матриц A и B происходит подсчёт их произведения и вывод результата.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.583 из 5
Похожие ответы