1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
// 3x15: Producto de dos matrices /* Escribe un programa que calcule el producto de dos matrices introducidas por teclado. http://www.youtube.com/watch?v=eRBuGozq6Us */ #include <stdio.h> #define filA 2 #define colA 3 #define filB 3 #define colB 2 main(){ system("clear"); int mA[filA][colA]; int mB[filB][colB]; int mC[filA][colB]; int i, j, k, l; // Se ponen las matrices a cero: for( i=0; i<filA; i++ ){ for( j=0; j<colA; j++ ){ mA[i][j] = 0; }; }; for( i=0; i<filB; i++ ){ for( j=0; j<colB; j++ ){ mB[i][j] = 0; }; }; for( i=0; i<filA; i++ ){ for( j=0; j<colB; j++ ){ mC[i][j] = 0; }; }; // Se introducen los valores de la matriz Uno: printf("\vA continuacion se multiplicaran dos matrices.\nComience a introducir los datos de la primera matriz de %ix%i:\n\v", filA, colA); for( i=0; i<filA; i++ ){ // La i marca las filas for( j=0; j<colA; j++ ){ // La j marca las columnas // En la fila i, columna j, se guarda el entero introducido: scanf( "%i", &mA[i][j] ); system("clear"); // Se imprime la matriz completa con el valor almacenado: printf( "Primera matriz\n"); for( k=0; k<filA; k++ ){ for( l=0; l<colA; l++ ){ printf( " %i ", mA[k][l] ); }; printf( "\n"); }; }; }; system("clear"); // Se introducen los valores de la matriz Dos: printf("\vComience a introducir los datos de la segunda matriz de %ix%i:\n\v", filB, colB); for( i=0; i<filB; i++ ){ for( j=0; j<colB; j++ ){ // En la fila i, columna j, se guarda el entero introducido: scanf( "%i", &mB[i][j] ); system("clear"); // Se imprime la matriz completa con el valor almacenado: printf( "Segunda matriz\n"); for( k=0; k<filB; k++ ){ for( l=0; l<colB; l++ ){ printf( " %i ", mB[k][l] ); }; printf( "\n"); }; }; }; system("clear"); // Se calcula el resultado: for( i=0; i<filA; i++ ){ // Se recorren las filasA for( j=0; j<colB; j++ ){ // Se recorren las columnasB for( k=0; k<filB; k++ ){ // Se opera con todas las filasB mC[i][j] += mA[i][k] * mB[k][j]; // Se multiplican los n�meros... }; }; }; // y se imprimen las tres matrices printf( " Primera matriz\n"); for( i=0; i<filA; i++ ){ printf(" "); for( j=0; j<colA; j++ ){ printf( " %i ", mA[i][j] ); }; printf( "\n"); }; printf( "\n Segunda matriz\n"); for( i=0; i<filB; i++ ){ printf(" "); for( j=0; j<colB; j++ ){ printf( " %i ", mB[i][j] ); }; printf( "\n"); }; printf( "\n Producto\n"); for( i=0; i<filA; i++ ){ printf(" "); for( j=0; j<colB; j++ ){ printf( " %i ", mC[i][j] ); }; printf( "\n"); }; printf( "\v\v"); }; |
Que tal, tengo que hacer lo mismo pero en Arduino, me podrias ayudar? Es multiplicar dos matrices de 3 x 3, muchas gracias 🙂