Boa tarde, rapazeada.
Preciso implementar o seguinte código com estas funções: transpor uma matriz dada, retornar a multiplicação de duas matrizes, multiplicar todos os elementos da diagonal principal da matriz(podendo usar apenas aritmética de ponteiros).
#include <stdio.h>#include <stdlib.h>struct matriz{ int lin; int col; int *v;};typedef struct matriz Matriz;int leitura_linha_coluna(){ int linha_coluna; do { scanf("%d", &linha_coluna); }while(linha_coluna < 0); return linha_coluna;}Matriz* cria_matriz(int linhas, int colunas){ int i, j /*k = 0, elemento = 0;*/; Matriz *mat = (Matriz*) malloc(sizeof(Matriz)); if (mat == NULL) { printf("Nao foi possivel alocar a matriz.\n"); exit(1); } mat->lin = linhas; mat->col = colunas; mat->v = (int*) malloc(linhas * colunas * sizeof(float)); for(i = 0; i < linhas * colunas; i++) { scanf("%d", &mat->v[i]); } return mat;}void libera_matriz(Matriz *mat){ free(mat->v); free(mat);}int main(){ Matriz *matA, *matB, *matC; int linha_A, linha_B, linha_C, coluna_A, coluna_B, coluna_C, i, j, k; linha_A = leitura_linha_coluna(); coluna_A = leitura_linha_coluna(); matA = cria_matriz(linha_A, coluna_A); linha_B = leitura_linha_coluna(); coluna_B = leitura_linha_coluna(); matB = cria_matriz(linha_B, coluna_; linha_C = leitura_linha_coluna(); coluna_C = leitura_linha_coluna(); matC = cria_matriz(linha_C, coluna_C); libera_matriz(matA); libera_matriz(matB); libera_matriz(matC); return 0;}
Obrigado desde já!