求助C语言,打印二维数组出现问题,程序是两个矩阵相乘,cc是我要输出的数组

# include<stdio.h>
# include<math.h>
# include <malloc.h>
void printMatrix(double **a,int m,int n)
{
int i, j;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
printf("%lf\t", *((double *)a + n*i + j));
}
printf("\n");
}
}

double **matMultiply(double **a, double **b, int m, int n, int p)
{
int i = 0, j = 1, k = 0;
double aij, bjk,cik,**c;
c = (double **)malloc(m * sizeof(double*));
for (i = 0; i<m; i++)
{
c[i] = (double *)malloc(p * sizeof(double));
for (k = 0; k < p; k++)
{
cik = 0;
for (j = 0; j < n; j++)
{
aij = *((double *)a + n*i + j);
bjk = *((double *)b + p*j + k);
cik = cik + aij * bjk;
}
c[i][k] = cik;
}
}
return c;
}

void main()
{
double a[2][2] = { { 1, 1 }, { 2, 1 } }, b[2][2] = { { 1, 3 }, { 3, 1 } }, c[2][2] = { { 0, 0 }, { 0, 0 } };
double **cc;
int m = 2, n = 2, p = 2;
int i = 0, j = 1, k = 0;
cc = matMultiply(a, b, m, n, p);
printMatrix(cc, m, p);

system("pause");
}

# include<stdio.h>
# include<math.h>
# include <malloc.h>
void printMatrix(double **a,int m,int n)
{
int i, j;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
printf("%lf\t",*(*a + n*i + j)); //这里的a没必要进行强制类型转换
//printf("%lf\t", *((double *)a + n*i + j));
}
printf("\n");
}
}

double **matMultiply(double **a, double **b, int m, int n, int p)
{
int i = 0, j = 1, k = 0;
double aij, bjk,cik,**c;
c = (double **)malloc(m * sizeof(double*));
for (i = 0; i<m; i++)
{
c[i] = (double *)malloc(p * sizeof(double));
for (k = 0; k < p; k++)
{
cik = 0;
for (j = 0; j < n; j++)
{
aij = *((double *)a + n*i + j);
bjk = *((double *)b + p*j + k);
cik = cik + aij * bjk;
}
c[i][k] = cik;
}
}
return c;
}

void main()
{
double a[2][2] = { { 1, 1 }, { 2, 1 } }, b[2][2] = { { 1, 3 }, { 3, 1 } }, c[2][2] = { { 0, 0 }, { 0, 0 } };
double **cc;
int m = 2, n = 2, p = 2;
int i = 0, j = 1, k = 0;
cc = matMultiply(a, b, m, n, p);
printMatrix(cc, m, p);
//释放动态内存空间
for(i=0;i<p;i++)
free(cc[i]);
free(cc);

system("pause");
}

//运行结果
F:\c_work>a.exe
4.000000        4.000000
0.000000        5.000000
请按任意键继续. . .追问

还是这样的

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答