【发布时间】:2016-02-14 18:49:28
【问题描述】:
#include <iostream>
#include <iomanip>
using namespace std;
void getSales(int sales);
int main()
{
//declare variables
int sales = 0;
double commission = 0.0;
//enter input
getSales(sales);
//determine comission
if (sales < 0)
commission = -1;
else if (sales <= 100000)
commission = sales * .02;
else if (sales <= 400000)
commission = (sales - 100000) * .05 + 2000;
else
commission = (sales - 400000) * .1 + 17000;
//display commission error message
if (commission != -1)
{
cout << fixed << setprecision(2);
cout << "Comission: $" << commission << endl;
}
else
cout << "The sales cannot be less than 0." << endl;
return 0;
}
//pass variable by reference
void getSales(int sales)
{
cout << "Sales: ";
cin >> sales;
}
好的,所以我一直在尝试了解按值传递变量和按引用传递变量之间的区别。在这种情况下,我尝试使用 void getSales 进行简单的引用传递,但我的程序实际上不会调用我的算法。所以每次我输入销售额时,它都不会用我的算法打印结果。我对传递值不是很有经验,所以任何帮助都将不胜感激,所以我知道我在这里缺少什么。
非常感谢!
【问题讨论】:
-
您应该查看The Definitive C++ Book Guide and List 并找到一本初学者书籍或教程,因为这样很容易找到这个问题,并有一些很好的解释来说明区别。
-
这是一种非常复杂的方法,试图找出按值传递和按引用传递之间的区别。你应该简化你的例子。
-
你的 getSales() 参数不是按引用传递,而是按值传递调用。