大家给看个源程序,不知错哪里了,是关于矩阵乘法的
因为第一个矩阵的列等于第二个矩阵的行才可相乘,故输入中只有a,b,c其中b既是第一矩阵的列也是第二矩阵的行
#include "stdio.h"
#include "malloc.h"
#include "stdlib.h"
main()
{ int a,b,c,i,j,m,r;
float sn=0;
float *p,*p1,*e,*n;
float t=0;
printf("input hang a:");
scanf("%d",&a);
printf("input lie b:");
scanf("%d",&b);
printf("input another lie c:");
scanf("%d",&c);
p=(float*)malloc(a*b*sizeof(float));
p1=(float*)malloc(b*c*sizeof(float));
e=p;n=p1;
printf("input 1 array:");
for(i=0;i<a*b;i++)
{ scanf("%f",&t);
*(p+i)=t;
}
printf("input 2 array:");
for(i=0;i<b*c;i++)
{ scanf("%f",&t);
*(p1+i)=t;
}
for(i=0;i<a*b;i+=b)
{
for(m=0;m<c;m++)
{ for(j=0,r=0;j<b*c||r<b;j+=c,r++)
{p=p+i+r;
p1=p1+m+j;
sn=sn+(*p)*(*p1);
}printf("%f ",sn);
sn=0;p1=n;p=e;
} printf("\n");
}
}