c ++ - 将值从一个函数传递到另一个函数

时间:2014-11-20 05:23:24

标签: c++

这可能很简单,但我无法正常工作。通常代码应该在第一个函数中计算salary1,然后在第二个函数中使用第一个函数计算salary2,并在main函数中显示结果。但是,根据我如何尝试修改它,我得到"未识别的变量salary1使用"或输出为0.00。这是基本版本,我尝试以各种方式修改它,并且我已经没有想法了。非常感谢帮助。

float pay1(float, int);
float pay2(float);


int main()
{
//variables, cin etc., all the obvious stuff
//

salary2 = pay2(salary1);
cout << "salary2:" << salary2;
}


float pay1 (float daily, int days)
{
float salary1 = daily*days;
return 0;
}

float pay2 (float salary1)
{
float salary2 = 0.7*salary1;
return 0;
}

5 个答案:

答案 0 :(得分:0)

你应该返回salary2而不是0

float pay2 (float salary1)
{
float salary2 = 0.7*salary1;
return 0;//This is mistake you are returning 0
return salary2;
}

答案 1 :(得分:0)

目前您没有从函数中返回正确的值;您只需返回0.您应该从第一个函数salary1返回pay1并从salary2返回pay2。我假设您之前在main中声明了变量salary1salary2,并且在问题中省略了它们,但如果没有,则必须在main中声明它们。

答案 2 :(得分:0)

salary2 = pay2(salary1);  // Here you need to pass some value,

由于salary1之前没有定义,因为它给出了错误"unidentified variable salary1

你可以使用,例如

float salary1 = 1000.0;   //define variable
salary2 = pay2(salary1);

salary2 = pay2(1000.0);

float pay2 (float salary1)
{
    float salary2 = 0.7*salary1;
    //return 0;  // As here you are returning `0` so it will give `0.00` as Output.
    return salary2; // It will return value of salary2
}

答案 3 :(得分:0)

这就是你应该做的事情

float pay1(float, int);
float pay2(float);

int main()
{
    float daily = 100; //whatever number you want, obviously
    int days = 10; //same
    float salary1 = pay1(daily, days);
    // here salary1 is 1000
    float salary2 = pay2(salary1);
    // here salary2 is 700
    cout << "salary1:" << salary1<<"\n";
    cout << "salary2:" << salary2<<"\n";
    return 0;
}


float pay1 (float daily, int days)
{
    return daily*days;
}

float pay2 (float salary1)
{
    return 0.7*salary1;
}

答案 4 :(得分:-1)

从问题中可以看出,您希望返回在函数内部计算的值但是您似乎返回0.解释保持不变只是检查下面的代码行是否适合您的代码

  

返回0;

另一种方法是可以将变量Salary1和salary2定义为全局变量。这不是最好的方法,但却是另一种选择。

void pay1(float, int);
void pay2();
float salary1,salary2;
int main()
{
     //normal cin statements.
     pay1(daily,days);
     pay2();
     cout<<"salary 2: "<<salary2;
}
void pay1(float daily,int days)
{
     salary1 = daily*days;
}
void pay2()
{
     salary2 = 0.7*salary1;
}