c编程 - 不能得到期望的输出
char choice, y, n;
float percentage;
int marks;
printf("Do you want to know your percentage?(y/n):\n\n");
scanf(" %c", &choice);
if (choice == 'y') {
printf("Enter Your 2nd Sem Marks:\n\n");
scanf(" %d", &marks);
percentage = (marks/775) * 100;
printf("Your 2nd Sem Percentage is %.2f", percentage);
} else
printf("Thankyou!!!!\n\n\n");
使用上述代码我不能计算百分比 - I得到输出0.00 ...c编程 - 不能得到期望的输出
例如,当我给输入作为536,而不是显示导致的69.16,这表明0.00 请帮我
由于marks
是int
而且将永远是小于775,表达(marks/775)
,经过整数除法,永远产量为零。您应该在表达式中强制转换为浮点数,或者在表达式中使用浮点数,以保留除法的其余部分。
非常感谢它的工作... – 2014-08-30 15:37:11
这是因为你在做这个
percentage = (marks/775) * 100;
而应该做到这一点
percentage = ((float)marks/775) * 100;
记住(marks/775)
会给整数作为两个操作数均为整数。 Int他的情况下,536/775
将根据整数除法为0
。
您应该改为执行浮动除法以获取百分比。
非常感谢....它的工作 – 2014-08-30 15:37:41
请接受这是否有帮助。 – OneMoreError 2014-08-30 15:38:39
'775' - >'775.0' – BLUEPIXY 2014-08-30 15:28:46
可能重复[C中的整数除法的行为是什么?](http://*.com/questions/3602827/what-is-the-behavior-of -integer-division-in-c) – juanchopanza 2014-08-30 15:37:34
你已经通过评论表明你的问题的两个答案已经奏效。还有一件事你应该做,那就是将其中一个答案标记为“已接受”。这是回答你的问题的人从回答时间中获益的方式之一。 – DavidO 2014-08-30 16:01:09