我把代码帖出来,随便写的没注意检错和效率等问题,GG莫笑哈
错误很奇怪哈,已经通过了编译得到可执行程序.
#include <stdio.h>
#include<stdlib.h>
#define N 4
int multy(int*,int*);
int i,j,m,n;
int p=N*sizeof(int);
int *zzw=(int*)malloc(N*p);
int *B=(int*)malloc(N*p);
int *C=(int*)malloc(N*p);
main(int argc, char *argv[])
{
printf("input the matrix");
for (i=0;i<N-1;i++)
{
for(j=0;j<N-1;j++)
{
scanf(" %d",&(*(B+i*p+j)));
}
printf("\n");
}
for (i=0;i<N-1;i++)
{
for(j=0;j<N-1;j++)
{
scanf(" %d",&(*(C+i*p+j)));
}
printf("\n");
}
printf("B matrix\n");
for (i=0;i<N-1;i++)
{
for(j=0;j<N-1;j++)
{
printf(" %d",*(B+i*p+j));
}
printf("\n");
}
printf("C matrix\n");
for (i=0;i<N-1;i++)
{
for(j=0;j<N-1;j++)
{
printf(" %d",*(C+i*p+j));
}
printf("\n");
}
multy(B,C);
printf("A matrix\n");
for (m=0;m<N-1;m++)
{
for(n=0;n<N-1;n++)
{
printf(" %d",*(zzw+m*p+n));
}
printf("\n");
}
free(C);
free(B);
free(zzw);
return 0;
}
int multy(int *,int *)
{int t;
int sum;
for(m=0;m<N-1;m++)
{
for(n=0;n<N-1;n++)
{
sum=0;
for(t=0;t<N-1;t++)
{
sum+=(*(B+m*p+t)*(*(C+t*p+n)));
*(zzw+m*p+n)=sum;
}
}
}
运行以后B矩阵的B[2][3],B[3][3]不管输入什么都是一个定值1.....
不知是不是内存分配上的问题.
牛GG们帮帮忙我研究了半天都没头绪