这可能很简单,但我无法正常工作。通常代码应该在第一个函数中计算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;
}
答案 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中声明了变量salary1
和salary2
,并且在问题中省略了它们,但如果没有,则必须在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;
}