当答案不应该为 0 时,值总是返回为 0

value always coming back as 0 when the answer should not be 0

尝试取回通常应该 return 20 到 30 的值,因为 s 使用此代码

int s = sentences / wordcount * 100;

sentenceswordcount 都作为它们不应该为 0 的值出现。它们的结果会很小(0.20 到 0.30)所以认为这可能与那个?

我的猜测是 sentenceswordcountint。结果,您的整数除法在 乘以 100 之前四舍五入为整数。请注意,整数除法不可交换。

一个简单的解决方法是在除以字数之前先乘以 100

int s = sentences * 100 / wordcount;

虽然更好的解决方案是使用 floatdouble

float s = (float)sentence / wordcount * 100;

尝试明确地将除法转换为浮点 (FP) 值,这应该可以防止

sentences / wordcount

从跌到零。你应该只需要将一个作为 FP 值。 尝试

int s = (double) sentences / wordcount * 100