Главная » Перемножение матриц (Си/Си++)
21:19

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


Картинка Перемножение матриц (Си/Си++) для мобильных телефонов

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


Код:


#include "stdafx.h"
#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;
    }
}


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


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

Похожие материалы:
Нашли ошибку на сайте? Напишите в комментариях!
Категория: Язык программирования: Си/Си++ | Просмотров: 817 | Добавил: Ученик | Рейтинг: 3.7/3