我正在使用以下代码来计算和显示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/