WagCez 0 Denunciar post Postado Junho 7, 2011 Eu queria saber como faz multiplicação de uma matriz A10x4 e uma matriz B 4x3 que gerasse a matriz C=A*B Eu até fiz e consegui Está aqui #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int i, j, lA, cA, lB, cB, X; printf("\n Informe a quantidade de linhas da matriz A : "); scanf("%d",&lA); printf("\n Informe a quantidade de colunas da matriz A : "); scanf("%d",&cA); printf("\n Informe a quantidade de linhas da matriz B : "); scanf("%d",&lB); printf("\n Informe a quantidade de colunas da matriz B : "); scanf("%d",&cB); float matrizA[lA][cA],matrizB[lB][cB],matrizC[lA][cB],Aux=0; if(cA==lB) { for(i=0; i<lA; i++) { for(j=0; j<cA; j++) { printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da Matriz A: ", i+1, 167, j+1, 167); scanf("%f", &matrizA[i][j]); } printf("\n"); } for(i=0; i<lB; i++) { for(j=0; j<cB; j++) { printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ", i+1, 167, j+1, 167, 167); scanf("%f", &matrizB[i][j]); } printf("\n"); } printf("Matriz A \n\n"); for(i=0; i<lA; i++) { for(j=0; j<cA; j++) { printf("%6.f", matrizA[i][j]); } printf("\n\n"); } printf("Matriz B \n\n"); for(i=0; i<lB; i++) { for(j=0; j<cB; j++) { printf("%6.f", matrizB[i][j]); } printf("\n\n"); } for(i=0; i<lA; i++) { for(j=0; j<cB; j++) { matrizC[i][j]=0; for(X=0; X<lB; X++) { Aux += matrizA[i][X] * matrizB[X][j]; } matrizC[i][j]=Aux; Aux=0; } } printf("\n\n"); printf("Matriz Gerada da Multiplicação: A*B \n\n"); for(i=0; i<lA; i++) { for(j=0; j<cB; j++) { printf("%6.f", matrizC[i][j]); } printf("\n\n"); } printf("\n\n"); } else { printf("\n\n Nao ha como multiplicar as matrizes dadas \n"); } system("pause"); return 0; } Porém meu professor, que passou esse exercício, queria já as matrizes A e B com a quantidade de linhas e colunas e apenas colocar os componentes Nesse algoritmo que fiz, ele pede a quantidade de linhas e coluna de cada matriz para depois calcular Aliás tem como redúzi-la? E se possível alguem me ajude a colocá-la com as linhas e colunas já prontas Compartilhar este post Link para o post Compartilhar em outros sites
WagCez 0 Denunciar post Postado Junho 8, 2011 já consegui se quiserem que poste aqui é só falar Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Junho 8, 2011 Opa, compartilha ai. []s Compartilhar este post Link para o post Compartilhar em outros sites
WagCez 0 Denunciar post Postado Junho 9, 2011 /*24. Faça um algoritmo que dadas duas matrizes A(10x4) e B(4x3), calcule a matriz C, onde C=A*B.*/ #include <stdio.h> #include <stdlib.h> #include <math.h> int main(){ int i, j, lA, cA, lB, cB, x; lA=10; cA=4; lB=4; cB=3; float matrizA[lA][cA],matrizB[lB][cB],matrizC[lA][cB],Aux=0; for(i=0; i<10; i++){ for(j=0; j<4; j++){ printf("Informe os Componentes da Matriz A(por linha): "); scanf("%f", &matrizA[i][j]); } printf("\n"); } for(i=0; i<4; i++){ for(j=0; j<3; j++){ printf("Informe os componentes da Matriz B(por linha): "); scanf("%f", &matrizB[i][j]); } printf("\n"); } printf("Matriz A \n\n"); for(i=0; i<10; i++){ for(j=0; j<4; j++){ printf("%6.f", matrizA[i][j]); /* "%6.f" significa para eliminar 6 casas decimais dos componentes dados */ } printf("\n\n"); } printf("Matriz B \n\n"); for(i=0; i<4; i++){ for(j=0; j<3; j++){ printf("%6.f", matrizB[i][j]); } printf("\n\n"); } for(i=0; i<10; i++){ for(j=0; j<3; j++){ matrizC[i][j]=0; for(x=0; x<4; x++){ Aux+= matrizA[i][x] * matrizB[x][j]; /* x significa que a quantidade de colunas da Matriz A é mesma que as linhas da Matriz B */ } matrizC[i][j]=Aux; Aux=0; /* Aux significa guardar valor para não ser perdido durante o algoritmo - Pág 40-41 */ } } printf("\n\n"); printf("Matriz Gerada da Multiplicacao A*B \n\n"); for(i=0; i<10; i++){ for(j=0; j<3; j++){ printf("%6.f", matrizC[i][j]); } printf("\n\n"); } printf("\n\n"); system("PAUSE"); return 0; } lembrando que as matrizes já possuem um número fixo de linhas e colunas (A(10x4) e B(4x3)) Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Junho 9, 2011 A solução que você quer é mais simples que a que você já tem. Ao invés de operar sobre dados determinados em tempo de execução, defina constantes que representem as quantidades de linhas e colunas: #define LINHAS_A 10 #define COLUNAS_B 20 #define DIMENSAO_COMUM 15 int main(void) { int A[ LINHAS_A ][ DIMENSAO_COMUM ], B[ DIMENSAO_COMUM ][ COLUNAS_B ], C[ LINHAS_A ][ COLUNAS_B ]; // ... } Compartilhar este post Link para o post Compartilhar em outros sites