2017-10-11 1 views
0

이 함수는 x [0], x [1], x [2]를 계산합니다. n은 행, L은 아래쪽 행렬 (위쪽 대각선은 0), x는 미지수 및 b 해결책. 문제는 그들이 메인에서 호출달라고하고 함수에 매개 변수를 전달하는 방법을 알고하지 않는 것이, 내가 여기두고 :함수의 매개 변수

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 ]); 
+4

이 (HTTPS [배열의 배열이 포인터에 대한 포인터와 같은 것이 아니다] //stackoverflow.com/questions/18440205/casting-void-to-2d-array-of-int-c/18440456#18440456). 더 많은 정보와 [Minimal, Complete, and Verifiable Example] (http://stackoverflow.com/help/mcve)이 없으면 다른 것을 말하기가 정말로 어렵습니다. 그리고 [좋은 질문을하는 법을 읽어보십시오] (http://stackoverflow.com/help/how-to-ask)에 시간을 할애하십시오. –

+0

나는 정말로 이해하지 못한다. 당신이 그것을 실행할 때 당신이 당신의 programm에주는 매개 변수들을 사용해야한다 : 당신의 주 함수에있는'./matrix n param1 param2 param3' 또는 단지 몇몇 변수들? – pierreafranck

+0

나는 이것을 내 주요 기능에 가지고있다 : int n = 3; \t \t double ** a, * v, * u; \t \t \t \t는 scanf ("% 르 ', V [0]); \t scanf ("% le", & v [1]); \t scanf ("% le", & v [2]); \t \t \t \t scanf ("% le", & a [1] [0]); \t scanf ("% le", & a [2] [0]); \t scanf ("% le", & a [2] [1]); – Snarky

답변

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 ]);