所以我试图用C ++编写一个基本程序来获取某些东西的成本,数量,并计算三个不同函数中的总数/小计,然后在main()
中显示它。 / p>
问题是,变量不能使其脱离功能,我不知道为什么。我已经将输出语句放在函数本身中进行检查,而问题似乎只是在我试图将它们从所述函数中拉出来时。
#include <iostream>
using namespace std;
int price(int cost)
{
cout << "What is the cost of the robot?" << endl;
cin >> cost;
if (cost < 1000) //validation
{
cout << "Cost is too low. Setting to $1000." << endl;
cost = 1000;
return cost;
}
return cost;
}
int numRobots(int number)
{
cout << "How many robots are being ordered?" << endl;
cin >> number;
if (number < 50) //validation
{
cout << "We only sell in quantities of 50 or more. Setting quantity to 50." << endl;
number = 50;
return number;
}
return number;
}
void grandTotal(int cost, int number, double &subtotal, double &total)
{
subtotal = (cost * number);
total = (subtotal * .07) + subtotal;
}
int main()
{
int cost = 0;
int number = 0;
double subtotal = 0;
double total = 0;
price(cost);`enter code here`
numRobots(number);
grandTotal(cost, number, subtotal, total);
cout << cost; //testing
cout << number; //outputs
cout << total; //of
cout << subtotal; //variables
system("pause");
return 0;
答案 0 :(得分:4)
price(cost);
您正在调用一个返回int的函数,但您不会将int存储在任何位置。您可能希望返回到教科书并查看有关功能及其工作原理的章节。没有冒犯,但这是相当基本的。
你对numRobots
做了同样的事情。
或者,你可以通过引用传递参数并修改它,但imo,这不太容易理解。
TL;博士;
你应该做int cost = price();
(函数没有理由把int作为参数)
答案 1 :(得分:0)
使用返回值或通过引用或指针传递参数。
1。 int result = numRobots(number);
2。 int numRobots(int&amp; number){.....}
答案 2 :(得分:0)
您需要通过引用传递变量:
int cost = 0;
int number = 0;
price(cost);
numRobots(number);
void price(int& cost)
{
....
}
void numRobots(int& number)
{
....
}
在这种情况下请注意void
返回类型!
或者,您可以使用return
值:
int cost = price(cost);
int number = numRobots(number);
但是这个方法没有多大意义,因为作为参数传递给方法的变量与存储返回值的变量相同!