#include <iostream> // required for outputting text on screen and for reading the user's input
#include <vector> // required to store the runeworth in Hel-runes in a vector
#include <cmath> // required for powers of numbers
int main()
{
//runeworth in Hel-runes
std::vector<double> rune_worth {1/27,1/9,1/3,1};
for(int i=0;i<17;i++)
{
rune_worth.push_back(pow(3,i));
}
std::cout << rune_worth[0]*27;
return 0;
}
预期结果=1(1/27*27=1)
结果=0
所以向量不是按我想要的方式接受分数。 我做错了什么?
本声明:
std::vector<double> rune_worth {1/27,1/9,1/3,1};
将在rune_worth
中存储值{0.,0.,0.,1.}
,因为您正在对初始值进行整数除法。 例如1/27
是整数0
,而不是小数值。
相反,您可以执行以下操作:
std::vector<double> rune_worth {1./27, 1./9, 1./3, 1.};