Learn to format your code right.
Code:
#include <stdio.h>
#include <conio.h>
void input (int [][3], int, int [][4], int);
int mult (int [][3], int, int [][4], int);
void out (int [][4], int);
int main ()
{
const int r = 2, c = 3;
int mat1 [r][4], mat2 [c][4], mat [r][4];
input (mat1, r, mat2, c);
mult (mat1, r, mat2, c);
mat = mult (mat1, r, mat2, c);
out (mat, r);
getch ();
return 0;
}
void input (int mat1 [][3], int r, int mat2 [][4], int c)
{
for (int i = 0; i < r; i++)
for (int j = 0; j < 3; j++)
{
printf ("\nEnter mat1 [%d][%d]:\n", i, j);
scanf ("%d", &mat1 [i][j]);
}
for (int i = 0; i < c; i++)
for (int j = 0; j < 4; j++)
{
printf ("\nEnter mat2 [%d][%d]:\n", i, j);
scanf ("%d", &mat2 [i][j]);
}
}
int mult (int mat1 [][3], int r, int mat2 [][4], int c)
{
int mat [2][4];
for (int i = 0; i < r; i++)
for (int j = 0; j < 4; j++)
for (int k = 0; k < c; k++)
mat [i][j] = mat1 [i][k] * mat2 [k][j];
return mult;
}
void out (int mat [][4], int r)
{
printf ("\nThe produc of mat1 and mat2:\n");
for (int i = 0; i < r; i++)
{
for (int j = 0; j < 4; j++)
printf ("%5d", mat [i][j]);
printf ("\n");
}
}
Learn to compile with warnings on.
Read the warnings; fix the warnings.
Code:
mingw32-gcc.exe -Wall -std=c99 -O2 -c main.c -o obj\Release\main.o
main.c: In function 'main':
main.c:10:5: warning: passing argument 1 of 'input' from incompatible pointer type [enabled by default]
main.c:3:6: note: expected 'int (*)[3]' but argument is of type 'int (*)[4]'
main.c:11:5: warning: passing argument 1 of 'mult' from incompatible pointer type [enabled by default]
main.c:4:5: note: expected 'int (*)[3]' but argument is of type 'int (*)[4]'
main.c:12:5: warning: passing argument 1 of 'mult' from incompatible pointer type [enabled by default]
main.c:4:5: note: expected 'int (*)[3]' but argument is of type 'int (*)[4]'
main.c:12:9: error: incompatible types when assigning to type 'int[(unsigned int)r][4]' from type 'int'
main.c: In function 'mult':
main.c:39:5: warning: return makes integer from pointer without a cast [enabled by default]
main.c:34:9: warning: variable 'mat' set but not used [-Wunused-but-set-variable]