将值从一个函数传递到另一个函数

passing value from one function to another

本文关键字:函数 另一个 一个      更新时间:2023-10-16

这可能很简单,但我无法让它工作。通常,代码应该在第一个函数中计算薪水 1,然后在第二个函数中使用第一个函数计算工资 2,并在主函数中显示结果。但是,根据我尝试修改它的方式,我得到"使用未识别的可变工资1"或输出为 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;
}

你应该退还工资2而不是0

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

目前,您没有从函数返回正确的值;您只是返回 0。您应该从第一个函数返回salary1pay1并从pay2返回salary2。我假设您之前已经在 main 中声明了变量salary1salary2,并且只是从问题中省略了它们,但如果没有,您将不得不在 main 中声明它们。

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
}
这是

你应该做的

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;
}