Informatică, întrebare adresată de vargad682, 8 ani în urmă

Să se scrie o aplicaţie C/C++, care alocă dinamic memorie pentru stocarea
elementelor a două matrici de "m" linii şi "n" coloane. Să se scrie o funcţie care
calculează suma celor două matrici şi o funcţie pentru afişarea unei matrici. Să se
afişeze matricile iniţiale şi matricea obţinută dupa adunare.

Răspunsuri la întrebare

Răspuns de MorowN
0

Răspuns:

#include <stdio.h>

#include <stdlib.h>

// Dimenisiunile matricelor

#define M 3

#define N 4

// Functie pentru citirea unei matrici de la tastatura

void read_matrix(int **matrix) {

for (int i = 0; i < M; i++) {

for (int j = 0; j < N; j++) {

printf("Elementul[%d][%d]: ", i, j);

scanf("%d", &matrix[i][j]);

}

}

}

// Functie pentru afisarea unei matrici

void print_matrix(int **matrix) {

for (int i = 0; i < M; i++) {

for (int j = 0; j < N; j++) {

printf("%d ", matrix[i][j]);

}

printf("\n");

}

}

// Functie pentru calcularea sumei a doua matrici

void sum_matrices(int **matrix1, int **matrix2, int **result) {

for (int i = 0; i < M; i++) {

for (int j = 0; j < N; j++) {

result[i][j] = matrix1[i][j] + matrix2[i][j];

}

}

}

int main(void) {

// Alocam memorie pentru matricile de m x n elemente

int **matrix1 = (int **)malloc(M * sizeof(int *));

int **matrix2 = (int **)malloc(M * sizeof(int *));

int **result = (int **)malloc(M * sizeof(int *));

for (int i = 0; i < M; i++) {

matrix1[i] = (int *)malloc(N * sizeof(int));

matrix2[i] = (int *)malloc(N * sizeof(int));

result[i] = (int *)malloc(N * sizeof(int));

}

// Citim matricile de la tastatura

printf("Matricea 1:\n");

read_matrix(matrix1);

printf("Matricea 2:\n");

read_matrix(matrix2);

// Calculam suma matricelor

sum_matrices(matrix1, matrix2, result);

// Afisam matricile

printf("Matricea 1:\n");

print_matrix(matrix1);

printf("Matricea 2:\n");

print_matrix(matrix2);

printf("Suma matricelor:\n

Alte întrebări interesante