fork(1) download
  1. #include <stdio.h>
  2.  
  3. int main(void) {
  4. int tam, i, j, k, soma;
  5. scanf("%i", &tam);
  6. int mA[tam][tam], mB[tam][tam], mT[tam][tam], mR[tam][tam];
  7.  
  8. //ler matriz A e depois matriz B
  9. for (i=0; i<tam; i++) {
  10. for (j=0; j<tam; j++) {
  11. scanf("%i", &mA[i][j]);
  12. }
  13. }
  14.  
  15. for (i=0; i<tam; i++) {
  16. for (j=0; j<tam; j++) {
  17. scanf("%i", &mB[i][j]);
  18. }
  19. }
  20.  
  21. //transposta
  22. for (i=0; i<tam; i++) {
  23. for (j=0; j<tam; j++) {
  24. mT[i][j] = mA[j][i];
  25. }
  26. }
  27.  
  28. //multiplica
  29. for (i=0; i<tam; i++) {
  30. for (k=0; k<tam; k++) {
  31. soma = 0;
  32. for (j=0; j<tam; j++) {
  33. soma = soma + mA[i][j] * mT[j][k];
  34. }
  35. mR[i][k] = soma;
  36. }
  37. }
  38.  
  39. //compara matrizes
  40. int iguais = 1;
  41. for (i=0; i<tam; i++) {
  42. for (j=0; j<tam; j++) {
  43. if (mR[i][j] != mB[i][j]) {
  44. iguais = 0;
  45. printf("diferentes na posicao %i e %i\n", i, j);
  46. break; //faz para os FOR quando achar
  47. }
  48. }
  49. }
  50. if (iguais) {
  51. printf("correto\n");
  52. } else {
  53. printf("incorreto\n");
  54. }
  55.  
  56. //apenas para mostrar os valores das matrizes
  57. printf("Matriz A\n");
  58. for (i=0; i<tam; i++) {
  59. for (j=0; j<tam; j++) {
  60. printf("%i ", mA[i][j]);
  61. }
  62. printf("\n");
  63. }
  64. printf("\nMatriz A'\n");
  65. for (i=0; i<tam; i++) {
  66. for (j=0; j<tam; j++) {
  67. printf("%i ", mT[i][j]);
  68. }
  69. printf("\n");
  70. }
  71. printf("\nMatriz B\n");
  72. for (i=0; i<tam; i++) {
  73. for (j=0; j<tam; j++) {
  74. printf("%i ", mB[i][j]);
  75. }
  76. printf("\n");
  77. }
  78. printf("\nMatrizA * MatrizA'\n");
  79. for (i=0; i<tam; i++) {
  80. for (j=0; j<tam; j++) {
  81. printf("%i ", mR[i][j]);
  82. }
  83. printf("\n");
  84. }
  85. }
Success #stdin #stdout 0s 9432KB
stdin
3
1 2 3
4 5 6
7 8 9
14 32 50
32 77 122
50 122 194
stdout
correto
Matriz A
1 2 3 
4 5 6 
7 8 9 

Matriz A'
1 4 7 
2 5 8 
3 6 9 

Matriz B
14 32 50 
32 77 122 
50 122 194 

MatrizA * MatrizA'
14 32 50 
32 77 122 
50 122 194