为啥二维矩阵 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 不在主函数内打印?的主要内容,如果未能解决你的问题,请参考以下文章

编程题之打印二维螺旋矩阵

剑指offer-顺时针打印矩阵-二维数组

1091.二维矩阵中的最短路径

以螺旋顺序打印二维数组

发票二维码扫描增强_05_构建目标二维码

矩阵运算(二维数组)