Multiplica dos matrices y genera una nueva con resultados

¿Has encontrado un error? ¿Tienes la solución? Deja 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 estudiante con únicamente conocimiento básico del lenguaje, no de programación.

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
//****************************>
//-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

Punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

  • Si es lenguaje C <code lang="c">Código en C</code>
  • Si es lenguaje Pascal <code lang="pascal">Aquí dentro el código de Pascal</code>.

De esta manera el código coloreas el código.

Deja un comentario

Suscribirse a los comentarios.