Lista Final Q.2

Run Settings
LanguageC
Language Version
Run Command
#include <stdio.h> #include <stdlib.h> dig_matA (int x, int y, int *mat1){ int i, j; for (i = 0; i < x; i++){ for (j = 0; j < y; j++){ printf("Digite o valor da Matiz A na posicao [%d][%d]: ", i, j); scanf("%d", &mat1[i*y+j]);; } } } dig_matB (int x, int y, int *mat2){ int i, j; for (i = 0; i < x; i++){ for (j = 0; j < y; j++){ printf("Digite o valor da Matriz B na posicao [%d][%d]: ", i, j); scanf("%d", &mat2[i*y+j]); } } } ler_matA (int x, int y, int *mat1){ int i, j; printf("Matriz A:\n"); for (i = 0; i < x; i++){ for (j = 0; j < y; j++){ printf("%6d", mat1[i*y+j]); } printf("\n"); } } ler_matB (int x, int y, int *mat2){ int i, j; printf("Matriz B:\n"); for (i = 0; i < x; i++){ for (j = 0; j < y; j++){ printf("%6d", mat2[i*y+j]); } printf("\n"); } } int *mult (int x, int y, int z, int *mat1, int *mat2){ int i, j, k, *M; M = (int*) malloc(x*y*sizeof(int)); for (i = 0; i < x; i++){ for (j = 0; j < y; j++){ M[i*y+j] = 0; for (k = 0; k < z; k++) M[i*y+j] += mat1[i*z+k]*mat2[k*y+j]; } } return M; } ler_mult (int x, int y, int *Res){ int i, j; printf("A x B = \n"); for (i = 0; i < x; i++){ for (j = 0; j < y; j++){ printf("%6d", Res[i*y+j]); } printf("\n"); } } int main(){ int i, j, m, n, p, *matA, *matB, *Res; printf("Digite o numero de linhas da Matriz A: "); scanf("%d", &m); printf("Digite o numero de colunas da Matriz A: "); scanf("%d", &p); printf("O numero de linhas da Matriz B eh %d.", p); printf(" Digite o numero de colunas da Matriz B: "); scanf("%d", &n); matA = (int*) malloc(m*p*sizeof(int)); matB = (int*) malloc(p*n*sizeof(int)); dig_matA(m, p, matA); dig_matB(p, n, matB); ler_matA(m, p, matA); ler_matB(p, n, matB); Res = mult(m, n, p, matA, matB); ler_mult(m, n, Res); free(matA); free(matB); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines