He redactado este codígo que genera, suma, resta , multiplica y multiplica por un escalar matrices.
La función de multiplicar me falla, podeis ayudarme?
gracias.
Código
#include <stdlib.h> #include<stdio.h> #include <time.h> int n; void generar_matriz (int m[][3]); void sumar (int m1[][3], int m2[][3]); void restar (int m1[][3], int m2[][3]); void multiplicar (int m1[][3], int m2[][3]); void escalar (int m1[][3]); int main() { int matriz1[n][3]; int matriz2[n][3]; generar_matriz (matriz1); generar_matriz (matriz2); sumar (matriz1, matriz2); restar (matriz1, matriz2); multiplicar(matriz1,matriz2); escalar(matriz1); } /*********************************************/ void generar_matriz (int m[][3]) { int i,j; for (i=0;i<n;i++) { for (j=0;j<n;j++) { } } } void sumar (int m1[][3], int m2[][3]) { int i,j; for (i=0;i<n;i++) { for (j=0;j<n;j++) { } } } void restar (int m1[][3], int m2[][3]) { int i,j; for (i=0;i<n;i++) { for (j=0;j<n;j++) { } } } void escalar (int m1[][3]){ int i, j, e; for (i=0;i<n;i++) { for (j=0;j<n;j++) { } } } void multiplicar (int m1[][3], int m2[][3]) { int i,j, k; int m3[n][3]; for (i=0;i<n;i++) { for (j=0;j<n;j++) { for (k=0;k<n;k++) { m3[i][j]=m3[i][j]+(m1[i][k]*m2[k][j]); } } } }