السلام عليكم
عندي مشكلة فى هذا البرنامج ان ما يعطي نتائج صحيحية وهو بضرب مصفوفتين باستخدام الدوال والمؤشرات
#include<iostream.h>
void multiply(int *,int *);
void main()
{int i,j,a[3][4],b[4][3],*p1,*p2;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>*(*(a+i)+j);
p1=&a[0][0];
for(i=0;i<4;i++)
for(j=0;j<3;j++)
cin>>*(*(b+i)+j);
p2=&b[0][0];
multiply(p1,p2);
}
void multiply(int *p1,int *p2)
{ int i,j,k,t,c[3][3]={0,0,0,0,0,0,0,0,0};
for(i=0;i<4;i++)
for(j=0;j<3;j++)
{t=*(p2+i*3+j);
*(p2+i*3+j)=*(p2+j*4+i);
*(p2+j*4+i)=t;}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(k=0;k<4;k++)
c[j]+=*(p1+i*4+k)**(p2+k*3+j);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cout<<c[j];
}