Multiplica dos matrices y genera una nueva con resultados
//****************************> //-Victor De la Rocha //-Algoritmia@groups.msn.com //-www.myalgorithm.com //-Jueves 28/OCT/04 //-Programa 8, Practica 10 //-Ciclos Vectores y Matrices //-Programa que multiplica dos matrices //****************************> #include <stdio.h> #include <conio.h> //libreria con el prototipo de la funcion rand() #include <stdlib.h> void main(){ //definicion de variables int filas,cols,c1,c2,c3,suma; int mat1[100][100],mat2[100][100],mat3[100][100]; randomize();//inicializa el generados de numeros aleatoreos clrscr();//limpiamos pantalla //-------------dimension do{filas=rand()%5;}while(filas==0&&filas>=3);//damos numero aleatorio a la dimension del vector cols=filas;//les damos el mismo valor para que sea cuadratica //------------- //simulamos la entrada de valores printf("filas: %dn",filas); printf("columnas: %dnn",cols); //-------------asignacion for(c1=1;c1<=filas;c1++){//ciclamos la asignacion y salida de datos en pantalla for(c2=1;c2<=cols;c2++){ mat2[c1][c2]=rand()%200;//asignamos valores aleatoreos mat1[c1][c2]=rand()%200;//asignamos valores aleatoreos printf("mat1[%d][%d]= %dn",c1,c2,mat1[c1][c2]);//salida en pantalla printf(" mat2[%d][%d]= %dn",c1,c2,mat2[c1][c2]);//salida en pantalla }//END cols printf("n"); }//END filas //------------- for(c1=1;c1<cols;c1++){ for(c2=1;c2<cols;c2++){ suma=0; for(c3=1;c3<cols;c3++){ suma=suma+(mat1[c3][c1]*mat2[c2][c3]); } mat3[c1][c2]=suma; } } for(c2=1;c2<=cols;c2++){ for(c1=1;c1<=cols;c1++){ printf("mat3[%d][%d]=%dn",c2,c1,mat3[c2][c1]); } } getch();//esperamos una tecla }//END void main
filas: 4 columnas: 4 mat1[1][1]= 88 mat2[1][1]= 142 mat1[1][2]= 7 mat2[1][2]= 199 mat1[1][3]= 103 mat2[1][3]= 19 mat1[1][4]= 111 mat2[1][4]= 118 mat1[2][1]= 69 mat2[2][1]= 3 mat1[2][2]= 38 mat2[2][2]= 86 mat1[2][3]= 76 mat2[2][3]= 81 mat1[2][4]= 127 mat2[2][4]= 93 mat1[3][1]= 156 mat2[3][1]= 78 mat1[3][2]= 115 mat2[3][2]= 190 mat1[3][3]= 28 mat2[3][3]= 190 mat1[3][4]= 167 mat2[3][4]= 54 mat1[4][1]= 161 mat2[4][1]= 77 mat1[4][2]= 134 mat2[4][2]= 127 mat1[4][3]= 21 mat2[4][3]= 113 mat1[4][4]= 60 mat2[4][4]= 155 mat3[1][1]=29191 mat3[1][2]=18834 mat3[1][3]=49614 mat3[1][4]=0 mat3[2][1]=10741 mat3[2][2]=12604 mat3[2][3]=29616 mat3[2][4]=0 mat3[3][1]=30282 mat3[3][2]=91137 mat3[3][3]=27794 mat3[3][4]=0 mat3[4][1]=0 mat3[4][2]=0 mat3[4][3]=0 mat3[4][4]=0 ¿Has encontrado algún error? ¿Tienes la solución? Dejame tu correción ;-)
Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.
Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:
- Si es lenguaje C [c]Código en C[/c]
- Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].
De esta manera el código coloreas el código.
Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:Me reservo el derecho de alterar, publicar o no los comentarios as´ como cambiar mis condiciones en el momento que así lo requiera.
¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)