|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2007-12-9 13:30
|
显示全部楼层
谢谢啦. 改了下,但是距阵乘积的结果还是抱错,即使是两个2x2同样维数的相乘.
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
int main(int argc, char** argv)
{
int **a;
int i,m,n,j,temp_a,k,temp_b,z;
printf("Angaben der Dimension von Matrix a m und n\n",m,n);
scanf("%d %d",&m,&n); /*dyn.array a mit [m][n]*/
a=(int**)malloc(m*sizeof(int*));
for (i=0;i<m;i++)
a=(int *)malloc(n*sizeof(int));
printf("Please input int matrix a[%d][%d]\n",m,n);
for(i=0;i<m;i++)
for(j=0;j<n;j++){
scanf("%d",&temp_a);
a[j]=temp_a;}
free(a);
/**********************************************************/
int **b;
printf("Angaben der Dimension von Matrix b n und k\n",n,k);
scanf("%d %d",&k,&n);
b=(int**)malloc(k*n*sizeof(int*)); /*dyn.array mit b [n][k]*/
for (i=0;i<n;i++)
b=(int *)malloc(k*sizeof(int));
printf("Please input int matrix b[%d][%d]\n",n,k);
for(i=0;i<n;i++)
for(j=0;j<k;j++){
scanf("%d",&temp_b);
b[j]=temp_b;}
free(b);
/**********************************************************/
int ab[m][k]; /*Matrix multiplikation*/
for (i=0;i<m;i++)
for (z=0;z<k;z++)
for (j=0;i<k;j++)
ab[z]+=a[j]*b[j][z];
/***Ausgabe*****************************************************/
printf("\n");
printf("Ausgaben:",m,k);
for(i=0;i<m;i++){
printf("\n");
for(j=0;j<k;j++)
printf("%d ",ab[j]);
}
return 0;
} |
|