C++奇怪的变量问题

cod*_*ude 1 c++ int

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

int score = (correctNumber / 3) * 100;
cout << score;
Run Code Online (Sandbox Code Playgroud)

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

说"correctNumber"等于2.那么"得分"不应该是67吗?这是int变量类型无法计算小数点的问题吗?

Ona*_*Bai 7

你把数学作为整数,所以1/3是0.

尝试:

int score = (100 * correctNumber) / 3
Run Code Online (Sandbox Code Playgroud)

如果你想圆

int score = (100 * correctNumber + 1) / 3
Run Code Online (Sandbox Code Playgroud)