Quick actions

cmd+k|ctrl+k

Navigation

Languages

Lab5.3

Snippet info

Language

C

Visibility

public

Author

y.s.tkachenko

Created

2023-04-27T21:44:47.417369Z

Updated

2023-04-27T21:44:47.417369Z

/**
* @file lab5.3.cpp
*@author Ткаченко Є.С., гр. 515і
*@date 26 квітня 2023
*@brief Лабораторна робота № 5, варіант 7
*
* Завдання 3. Застосування вказівників.
*/
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

void mul_square_matrix(int* m1, int* m2, int* m3, int n) {
    int i, j, k;

    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            *(m3 + i * n + j) = 0;
            for (k = 0; k < n; k++) {
                *(m3 + i * n + j) += *(m1 + i * n + k) * *(m2 + k * n + j);
            }
        }
    }
}

int main() {
    setlocale(LC_ALL, "Ukr");
    int n, i, j;
    printf("Введiть розмiр матрицi: ");
    scanf("%d", &n);

    int* m1 = (int*)malloc(n * n * sizeof(int));
    int* m2 = (int*)malloc(n * n * sizeof(int));
    int* m3 = (int*)malloc(n * n * sizeof(int));

    printf("Введiть елементи першої матрицi:\n");
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            scanf("%d", m1 + i * n + j);
        }
    }

    printf("Введiть елементи другої матрицi:\n");
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            scanf("%d", m2 + i * n + j);
        }
    }

    mul_square_matrix(m1, m2, m3, n);

    printf("Результат множення:\n");
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            printf("%5d ", *(m3 + i * n + j));
        }
        printf("\n");
    }

    free(m1);
    free(m2);
    free(m3);

    return 0;
}
INFO