2016-06-28 2 views
-4

이 문제를 파악하려고하지만 C 언어와 관련된 답변을 찾을 수 없습니다. 문제는 다른 함수에서 반환 값을 사용하려고 할 때 그 값이 나오지 않고 출력시 '0'으로 나오게된다는 것입니다. 여기서 'interestRate'인한 함수의 반환 값을 다른 함수에서 사용하기 (C)

int getInterest(float Financing, float interestRate){ 
    float interest; 
    interest = Financing * interestRate; 
     printf("%f\n", interest); 

return interest;} 

은 나뿐만 아니라 다른 함수에서이 작업을 수행해야한다 :

int getFinanceAmt(float Cost, float Deposit){ 
    float Financing; 
    Financing = Cost - Deposit; 
     printf("%f\n", Financing); 

return Financing;} 

은 그래서 목표는 반환 값을 사용하고이 함수의 내부 방정식에 플러그하는 것입니다 온. 그것은 또 다른 기능입니다. 포인터가 필요합니까?

+1

포스트 코드를 그 "다른 함수에서 반환 값 사용". 이 두 함수 중 어느 것도 서로를 호출하지 않습니다. 아니면 "다른 기능"을 보여 주어도됩니다. 또는 인쇄를 한 코드 일 수도 있습니다. – chux

+1

'int'를 반환 할 함수'getFinanceAmt()'에서'float Financing'을 반환한다는 것은 무엇을 의미합니까? – user3078414

+0

코드가 'float'을 가장 가까운 정수 값으로 변환해야한다면'(int)'대신'roundf (x)'를 사용하십시오. – chux

답변

1

아니요, 알다시피, 당신은 포인터가 필요합니다. 귀하의 경우 의도와의 코드가 일치하지 않습니다.

Financinginterestfloat이고 반환하는 함수의 반환 유형은 int입니다. 함수 반환 유형을 float으로 변경하여 호환 가능하게 할 수 있습니다.

+0

놀랍게도 나는 그것을 완전히 간과했다. 변경되었지만 계속 0을 인쇄합니다. –

+0

@KyleSteward 및 반환 값은 어떻게 인쇄합니까? '% f', 확실한가요? –

+0

코드는 인쇄하지는 않지만 테스트 목적으로 인쇄하고 있습니다. 그러나 '% f'를 사용하고 있습니다. –

1

반환 유형이 일치하지 않습니다. 반환 유형을 float으로 변경하고 올바르게 실행해야합니다.

+0

변경되었지만 여전히 0이 인쇄됩니다. –

1

먼저 getFinanceAmt에서 함수가 int를 반환하도록 선언되었지만 나중에 float을 반환하는 것처럼 보입니다. 먼저 getFinanceAmt를 다음과 같이 업데이트하십시오.

float getFinanceAmt(float cost, float deposit) 
{ 
    float financing; 
    financing = cost - deposit; 
     printf("%f\n", financing); 

    return financing; 
} 

다른 기능에서 동일한 작업이 진행되고 있습니다. 하지만 더 중요한 것은 실제로 첫 번째 함수를 이름으로 호출하고 위에서 선언 한 매개 변수를 제공해야합니다. getInterest에서 세 개의 매개 변수를 가져 와서 내부적으로 getFinanceAmt를 호출하는 것이 좋습니다. 두 funtions에 대한 잘못된 반환 형식으로 문제를 해결

float getInterest(float cost, float deposit, float interestRate) 
{ 
    float interest; 
    interest = getFinanceAmt(cost, deposit) * interestRate; 
     printf("%f\n", interest); 

    return interest; 
} 
1

, 당신은 다른에 대한 인수로 하나에서 반환 된 값을 사용하려면이 같은 뭔가를 할 수 :

float getFinanceAmt(float Cost, float Deposit) 
{ 
    return Cost - Deposit; 
} 

float getInterest(float Financing, float interestRate) 
{ 
    return Financing * interestRate; 
} 

void foo() 
{ 
    float cost, deposit, rate; 

    /* more code here, which initializes the above variables */ 

    printf("Interest is %f\n", getInterest(getFinanceAmt(cost, deposit), rate)); 
} 
관련 문제