12,397,480 members (59,383 online)
Rate this:
See more:
I am writing a program related to Graph Theory, I wrote code for matrix multiplication by using functions, that worked well. when I am using that function into this program I am getting following errors.

I don't understand why this is happening?

Here I am giving you the part of code from my whole program.
```float product(int,int,int,int,float a[20][20],float b[20][20],float c[20][20]);
/*first to integers order of matrix a &
second two integers are order of matrix b
and float c is result of a*b */

float yn[ar][ar],temp[ar][ac];
product(ar,ac,ac,ac,incidence,yb,temp);/*calling function*/

float product(int ar,int ac,int br,int bc,float a[20][20],float b[20][20],float c[20][20])
{   int i,j,k;
if(ac==br)
{
for(i=0;i<ar;i++)
{
for(j=0;j<bc;j++)
{
c[i][j]=0;
for(k=0;k<ac;k++)
{
c[i][j]=c[i][j]+(a[i][k]*b[k][j]);
}
}
printf("\n");
}
}
else
{
return -1;
}
return 0;
}```
When I run this, I am getting these errors.
```prog.c: In function ‘main’:
prog.c:40: warning: passing argument 5 of ‘product’ from incompatible pointer type
prog.c:4: note: expected ‘float (*)[20]’ but argument is of type ‘int (*)[(unsigned int)(ac)]’
prog.c:40: warning: passing argument 6 of ‘product’ from incompatible pointer type
prog.c:4: note: expected ‘float (*)[20]’ but argument is of type ‘int (*)[(unsigned int)(ac)]’```
Posted 13-Oct-12 6:11am
N Shiva530
Updated 13-Oct-12 6:37am
v4

Rate this:

## Solution 2

I have solved this problem my self. What I did is...

I have given float as inputs but
I am calling the function for int arrays.
that is the problem.

Top Experts
Last 24hrsThis month
 OriginalGriff 220 Richard MacCutchan 215 Richard Deeming 214 Karthik Bangalore 190 F-ES Sitecore 100
 OriginalGriff 6,283 Karthik Bangalore 2,572 ppolymorphe 2,455 F-ES Sitecore 1,897 Richard MacCutchan 1,842