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;
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_B);
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;
}
Pergunta
Joker023
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; 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_B); 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á!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.