c编程 - 无法获得所需的输出

时间:2014-08-30 15:25:09

标签: 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");

我无法使用上述代码计算百分比 - 我得到输出0.00 ...

例如,当我将输入设为536时,不显示结果为69.16,而是显示0.00 请帮帮我

2 个答案:

答案 0 :(得分:5)

由于marksint并且始终小于775,因此在整数除法后,表达式(marks / 775)将始终为零。您应该转换为表达式中的浮点数,或者在表达式中具有浮点数,以保留除法的其余部分。

答案 1 :(得分:3)

这是因为你这样做

percentage = (marks/775) * 100;

你应该这样做

percentage = ((float)marks/775) * 100;

请记住,(marks/775)将给出一个整数,因为两个操作数都是整数。 在他的情况下,536/775将按整数除法0

您应该执行浮动除法以获得百分比。