为啥二维矩阵 U 不在主函数内打印?
Posted
技术标签:
【中文标题】为啥二维矩阵 U 不在主函数内打印?【英文标题】:Why is the 2d matrix U not printing inside the main function?为什么二维矩阵 U 不在主函数内打印? 【发布时间】:2022-01-16 03:55:38 【问题描述】:int main()
double a, b, hx, hy, tol, max1;
double h = 0.25;
tol = 0.000000001;
max1 = 100000000;
a = 1; b = 1;
hx = h;
hy = h;
int n = (a / hy) + 1;
int m = (b / hx) + 1;
double **U = (double **) malloc(n * sizeof(double*));
for (int i = 0; i < n; i++)
U[i] = (double *) malloc(m * sizeof(double));
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
U[i][j] = 1;
LAPLACEWCG(a, b, h, hx, hy, tol, max1,U);
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
printf("U[%d][%d]: %lf \n", i, j, U[i][j]);
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
printf("U[%d][%d]: %lf \n", i, j, U[i][j]);
return 0;
为什么没有打印矩阵。如果我尝试在 laplacewcg() 中打印它,它会在 while 循环内打印,但也不会在其外部打印。代码需要改什么?
【问题讨论】:
"...它在 while 循环内打印..." 哪个while
循环?你忘了贴一些代码吗?
无论如何...如果您在main
中没有得到任何打印,则意味着LAPLACEWCG
正在做一些奇怪的事情...尝试注释掉该行...它是否打印后那个?
[***.com/questions/70311798/…
@4386427 该链接指向完整代码。你能看一下吗?
当你注释掉LAPLACEWCG(a, b, h, hx, hy, tol, max1,U);
这一行时发生了什么
【参考方案1】:
您将 U 矩阵值传递给 LAPLACEWCG() 函数,但您通过引用传递。试试:
LAPLACEWCG(..., &U);
【讨论】:
以上是关于为啥二维矩阵 U 不在主函数内打印?的主要内容,如果未能解决你的问题,请参考以下文章