我正在使用以下代码来计算和显示C++中数学游戏的最终分数。

int score = (correctNumber / 3) * 100;
cout << score;

变量“correctNumber”始终为0到3之间的值。但是,除非“correctNumber” = 3,否则变量“score”始终等于“0”。当“correctNumber”等于3时,“得分”等于100。

假设“correctNumber”等于2。那么“分数”不应该是67吗?这是int变量类型无法计算小数点的问题吗?

最佳答案

您正在做整数运算,所以1/3为0。

尝试:

int score = (100 * correctNumber) / 3

如果要四舍五入:
int score = (100 * correctNumber + 1) / 3

关于c++ - C++怪异变量问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14178111/

10-11 18:59