【问题标题】: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 正在做一些奇怪的事情...尝试注释掉该行...它是否打印后那个?
  • @4386427 该链接指向完整代码。你能看一下吗?
  • 当你注释掉LAPLACEWCG(a, b, h, hx, hy, tol, max1,U);这一行时发生了什么

标签: arrays c function


【解决方案1】:

您将 U 矩阵值传递给 LAPLACEWCG() 函数,但您通过引用传递。试试:

LAPLACEWCG(..., &U);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    • 2016-03-10
    • 2021-11-20
    • 1970-01-01
    • 2023-03-25
    • 2015-11-29
    • 2012-10-01
    相关资源
    最近更新 更多