void mat_mul(complex** a, complex** b, complex** c, int n, int m, int l)

{
int i, j, k;
complex s, t;

for (i = 0; i < n; i++)
for (j = 0; j < m; j++) {
s.re = s.im = 0.0;
for (k = 0; k < l; k++) {
t = mul(a[i][k], b[k][j]);
s = add(s, t);
}
c[i][j] = s;
}
}

void print_mat(complex** a,int n,int m,char *str)
{
int i, j;

printf("%s = \n", str);
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++)
printf("%+f + %+fi ", a[i][j].re, a[i][j].im);
printf("\n");
}
}
というように変更すれば良いのでしょうか?
あと下準備を書く場所はどこでも良いのですか?
よろしくお願いします。