写得很不错的代码,但是很让人吃惊的是,为什么会出不赋初值这样的小问题
已经发现的两处未赋初值的地方:
1. 主函数main中的动态数组b的元素均未初始化,未赋初值
2. 函数multiplication中的动态数组c的元素均未初始化,未赋初值
int main(void)
{
int i,j,k,**a,**b,data;
printf("\n 请输入 矩阵阶数:");
scanf("%d",&size);
int n=5;//矩阵最高阶数
a=malloc_A(size,size);
b=malloc_A(size,size);
printf("\n 请输入n阶矩阵:\n");
for(i=0;ifor(j=0;j {
scanf("%d",&data);
a[i][j]=data;
b[i][j]=0; // b元素赋初值0
}
for(k=0;k<=n;k++)
{
pow_A(a,k);
add(b,a);
}
for(i=0;i{
for(j=0;jprintf("%d ",b[i][j]);
printf("\n");
}
free_A(a,size);
free_A(b,size);
return 0;
}
void multiplication(int **a,int **b)
{
//函数功能:令a=a*b
int p,q,k;
int **c;
//计算乘法
c=malloc_A(size,size);
for (p=0;pfor (q=0;q c[p][q]=0; // c元素赋初值0
for (k=0;kc[p][q]+=a[p][k]*b[k][q];
}
for (p=0;pfor (q=0;q a[p][q]=c[p][q];
free_A(c,size);
}
是否有其他问题,还不是特别明确