函数中的参数

时间:2017-10-11 08:48:32

标签: c function matrix parameters

我有这个函数计算x [0],x [1],x [2],其中n是行,L是下矩阵(顶部对角线上的0),x是未知,b是解。问题是他们要求我从main调用它,不知道如何将参数传递给函数,我把它放在这里:

void resTinf (int n, double **L, double *x, double *b){
    int i, k;
    x[0]=b[0];

    for (i = 1, i<n, i++){
        x[i]=b[i];

        for (k = 0, k<i, k++){
            x[i] = x[i]-L[i][k]*x[k];
        }
    }
    x[2] = b[2] - L[2][0]*x[0]-L[2][1]*x[1];
    printf(x[1], x[2], x[3]);
}

主要:

int n = 3;
double **a, *v, *u;

scanf ("% le " , &v[0 ]);
scanf ("% le " , &v[1 ]);
scanf ("% le " , &v[2 ]);
scanf ("% le " , &a[1][ 0]);
scanf ("% le " , &a[2 ][ 0]);
scanf ("% le " , &a[2 ][ 1 ]);

1 个答案:

答案 0 :(得分:1)

首先,您需要为动态数组分配内存,或者只是在函数开头创建静态数组。  像那样:

#include <stdlib.h>  

主:

int n = 3;
double **a, *v, *u;
v = (double*)malloc(n * sizeof(double));
u = (double*)malloc(n * sizeof(double));
a = (double**)malloc(n * sizeof(double *));
for(int i = 0; i < n; i++){
 a[i] = (double*)malloc(n * sizeof(double));
}


scanf ("% le " , &v[0 ]);
scanf ("% le " , &v[1 ]);
scanf ("% le " , &v[2 ]);
scanf ("% le " , &a[1][ 0]);
scanf ("% le " , &a[2 ][ 0]);
scanf ("% le " , &a[2 ][ 1 ]);

 int n = 3;
double a[n][n], v[n], u[n];

scanf ("% le " , &v[0 ]);
scanf ("% le " , &v[1 ]);
scanf ("% le " , &v[2 ]);
scanf ("% le " , &a[1][ 0]);
scanf ("% le " , &a[2 ][ 0]);
scanf ("% le " , &a[2 ][ 1 ]);