使用另一个函数的返回值(C)

时间:2016-06-28 20:39:25

标签: c function return

我试图找出这个问题,但我无法找到有关C语言的任何答案。问题在于,当我尝试在另一个函数中使用返回值时,该值不会通过,并且它会以' 0'打印时

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

return Financing;}

因此,目标是利用该返回值并插入此函数内的等式:

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

return interest;}

我必须在另一个功能中执行此操作,这是感兴趣的'来自。这也是另一个功能。我需要某种指针是不对的?

4 个答案:

答案 0 :(得分:1)

您的返回类型不匹配。将您的退货类型更改为float,它应运行正常

答案 1 :(得分:1)

首先,在getFinanceAmt中,看起来声明函数返回一个int,但稍后返回一个float。所以首先将getFinanceAmt更新为:

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

    return financing;
}

另一个功能正在发生同样的事情。但更重要的是,您需要实际按名称调用第一个函数,并为其提供我们在上面声明的所需参数。我建议只在getInterest中输入三个参数,然后在内部使用它们来调用getFinanceAmt。

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

    return interest;
}

答案 2 :(得分: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));
}

答案 3 :(得分:0)

不,如我所见,你不需要需要指针。在您的情况下,您的意图和您的代码不匹配。

Financinginterest的类型为float,但返回它们的函数的返回类型为int。您可能希望将函数返回类型更改为float以使它们兼容。