/ Материалы / Язык программирования: Си/Си++ / Перемножение матриц (Си/Си++)

Перемножение матриц (Си/Си++)


Скачать изображение

Простенький код перемножения матриц в качестве домашнего задания для новичка на языке программирования Си. Программа работает в Visual Studio 14. Достаточно вставить код, скомпилировать его и запустить .exe программу. Разобраться в самой программе очень просто.


Код:



#include "stdio.h"
#include "stdlib.h"
#include "locale.h"
#include "conio.h"

int main()
{
 int N, M, N1, M1, i, j, k;
 setlocale(0, "RUS");
 N = 10;
 int **A = (int**)malloc(N * sizeof(int*));
 int **B = (int**)malloc(N * sizeof(int*));
 int **C = (int**)malloc(N * sizeof(int*));
 for (i = 0; i < N; i++)
 {
 A[i] = (int*)malloc(N * sizeof(int));
 B[i] = (int*)malloc(N * sizeof(int));
 C[i] = (int*)malloc(N * sizeof(int));
 }
 printf("Введите количество строк первой матрицы: ");
 scanf_s("%d", &N);
 printf("Введите количество столбцов первой матрицы: ");
 scanf_s("%d", &M);
 printf("Заполните матрицу A:\n");
 for (i = 0; i < N; i++)
 for (j = 0; j < M; j++)
 {
 scanf_s("%d", &A[i][j]);
 }
 printf("Введите количество строк второй матрицы: ");
 scanf_s("%d", &N1);
 printf("Введите количество столбцов второй матрицы: ");
 scanf_s("%d", &M1);
 if (M != N1)
 printf("Эти матрицы невозможно перемножить");
 else
 {
 printf("Заполните матрицу B:\n");
 for (i = 0; i < N1; i++)
 for (j = 0; j < M1; j++)
 {
 scanf_s("%d", &B[i][j]);
 }
 for (i = 0; i < N; i++)
 for (j = 0; j < M; j++)
 {
 C[i][j] = 0;
 for (k = 0; k < M1; k++)
 C[i][j] += A[i][k] * B[k][j];
 }
 printf("\nВид матрицы А\n");
 for (i = 0; i < N; i++)
 {
 for (j = 0; j < M; j++)
 printf("%d ", A[i][j]);
 printf("\n");
 }
 printf("\nМатрица B\n");
 for (i = 0; i < N1; i++)
 {
 for (j = 0; j < M1; j++)
 printf("%d ", B[i][j]);
 printf("\n");
 }
 printf("\nПри умножении получаем матрицу порядка %dx%d\n", N, M1);
 for (i = 0; i < N; i++)
 {
 for (j = 0; j < M1; j++)
 printf("%d ", C[i][j]);
 printf("\n");
 }
 _getch();
 return 0;
 }
}
 

Пример работы программы:


Ответ на вопрос Перемножение матриц (Си/Си++)


Похожие материалы

avatar
Наверх