我试图找出这个问题,但我无法找到有关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;}
我必须在另一个功能中执行此操作,这是感兴趣的'来自。这也是另一个功能。我需要某种指针是不对的?
答案 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)
不,如我所见,你不需要需要指针。在您的情况下,您的意图和您的代码不匹配。
Financing
和interest
的类型为float
,但返回它们的函数的返回类型为int
。您可能希望将函数返回类型更改为float
以使它们兼容。