我完全不懂c++,认为写一个解决给出的文学谜题的程序是很好的练习(例如:你有2个容量分别为3升和5升的容器,能否得到4升等)。
我写了一个给定容器的类和一个旨在将一个容器中的内容“倒入”另一个容器中的函数。然而,该函数不会改变任何对象的内容值,尽管整个类都是公共的。我不确定自己做错了什么。
以下是我的代码:
#include <iostream>
using namespace std;
class Container {
public:
int quantity; //quantity of water in container
int size; //max amt of water
};
void pour(Container a, Container b) {
int differential = b.size - b.quantity;
if (a.quantity <= differential) {
b.quantity = a.quantity + b.quantity;
a.quantity = 0;
}
else if (a.quantity > differential) {
b.quantity = b.quantity - differential;
a.quantity = a.quantity - differential;
}
};
int main() {
Container bottle1;
bottle1.quantity = 5;
bottle1.size = 6;
Container bottle2;
bottle2.quantity = 0;
bottle2.size = 2;
pour(bottle2, bottle1);
cout << bottle1.quantity << ", " << bottle2.quantity << endl;
return 0;
}
我相信我的错误很明显,但我无法在任何地方找到答案。非常感谢您的帮助。
void pour(Container& a, Container& b)
- Jarod42