我找到了一些相关的答案但却无法理解,因为代码对我来说很复杂。
在此计划中,我使用dif ()
查找价格差异,然后将变量值总计存储在变量difrnc
中。然后我使用difrnc
变量作为函数调用的参数
inflation=inflan(difrnc,lyp) //(calculates the inflation)
我可以直接使用函数difrnc
中的答案作为函数dif()
的定义,而不是将整数存储在变量inflan()
中,而不是如何?
对不起,如果这是一个重复的问题,如果有人能用这个程序解释它会很棒。
#include<iostream>
using namespace std;
double dif(double lp,double cp);//cp= current price,lp= last price, current
double inflan(double difference,double lastyp);
double cost(double cp,double inrate);
int main()
{
double lyp,cyp,difrnc,inflation,one_year_cost; // lyp = last year price,cyp=current year price,
for(int i=0;i>=0;i++)
{
cout<<"Enter current years price :";
cin>>cyp;
cout<<"Enter last Years price: ";
cin>>lyp;
difrnc=dif(lyp,cyp);
if(difrnc<0)
{
cout<<"price decreased by "<<difrnc<<endl;
}
else
{
cout<<"price increased by "<<difrnc<<endl;
}
inflation=inflan(difrnc,lyp);
one_year_cost=cost(cyp,inflation);
cout<<one_year_cost<<endl;
}
}
// to find the difference in price
double dif(double lp,double cp)
{
double total;
total=cp-lp;
return(total);
}
// to find the inflation
double inflan(double difference,double lastyp)
{
double inrate;
inrate=difference/lastyp;
return(inrate);
}
// to find estimated cost in one year
double cost(double cp,double inrate)
{
double
totalc=cp+inrate;
return(totalc);
}
答案 0 :(得分:0)
除了您在函数中的当前问题,您可以通过删除它们的局部变量来简化它们,只需返回已计算的表达式。
例如:你有这个 - &gt;
double cost( double cp, double inrate ) {
double totalc = cp + inrate;
return totalc;
}
这样做安全有效:
double cost( double cp, double inrate ) {
return cp + inrate;
}
对于任何不通过任何循环的简单函数,您都可以这样做。
关于你的实际问题,请查看这个快速程序;
<强> sample.cpp的强>
#include <iostream>
int five() {
return 5;
}
int ten() {
return 10;
}
int add( int a, int b ) {
return a + b;
}
int main() {
std::cout << add( five(), ten() ) << std::endl;
return 0;
}
在主函数的第一行中设置一个断点,并在检查堆栈调用以及本地和自动变量时逐行逐步执行代码,以查看函数的每一行上发生的情况,以查看分配给每个变量的值。
答案 1 :(得分:0)
是的,你可以这样inflatio n = inflan(dif(lyp,cyp),lyp);
但是,由于您多次使用函数返回值,因此保持原样更有意义。