#include <stdio.h>

#define	MIDA	4

typedef struct {
	int m[MIDA][MIDA];
	int nf, nc;
} t_matriu;

void imprimir_matriu(t_matriu m) {
	int f, c;

	for(f = 0; f < m.nf; f++) {
		printf("(");
		for(c = 0; c < m.nc; c++) {
			printf("%2d ", m.m[f][c]);
		}
		printf(")\n");
	}
}

int main() {
	t_matriu m1 = {{{2,1},{0,3},{1,0},{3,4}},4,2};
	t_matriu m2 = {{{1,0,0},{3,4,2}},2,3};
	t_matriu m3 = {{{}},m1.nf,m2.nc};
	int f, c, i;

	imprimir_matriu(m1);
	printf("\n X\n\n");
	imprimir_matriu(m2);

	if (m1.nc == m2.nf) {
		for(f=0; f<m3.nf; f++) {
			for(c=0; c<m3.nc; c++) {
				for(i=0; i<m1.nc; i++) {
					m3.m[f][c] += m1.m[f][i] *
						      m2.m[i][c];
				}
			}
		}
		printf("\n =\n\n");
		imprimir_matriu(m3);
		printf("\n");
	} else {
		printf("ERROR!\n");
	}
}

