我是C ++的新手。最近我正在浏览google开发人员的教程:https://developers.google.com/edu/c++/getting-started
这是一个简单的匹配拼图,强力搜索解决方案: 马花10美元,猪花3美元,兔子只花0.5美元。一位农民以100美元购买100只动物,他购买了多少只动物?
这是我的代码:
#include <iostream>
using namespace std;
int main() {
int pHorse = 10;
int pPig = 3;
int pRabbit = 0.5;
for (int i = 0; i <= 100 / pHorse; ++i) {
for (int j = 0; j <= ((100 - i * pHorse) / pPig); ++j) {
int money = (100 - pHorse * i - pPig * j);
if (pRabbit * (100 - i - j) == money) {
cout << "The number of Horses are: " << i << endl;
cout << "The number of Pigs are: " << j << endl;
cout << "The number of Rabbits are: " << 100 - i - j << endl;
}
}
}
return 0;
}
然而,它给了我像[10 0 90]这样荒谬的答案,这显然不正确。
我无法弄清问题在哪里。任何的想法?提前谢谢。
答案 0 :(得分:2)
而不是
int pRabbit = 0.5;
试
double pRabbit = 0.5;
答案 1 :(得分:0)
一个int赢了0.5。试试浮动。
答案 2 :(得分:0)
0.5不是整数。它是一个浮点数,因此您不能将0.5存储在整数变量中。您可以使用double
或float
变量。
像这样:
double pRabbit = 0.5;
或
float pRabbit = 0.5;