// 6.1 Brain Teaser
#include <stdio.h>
int pills,weight;
float bottlenumber;
void load ()
{
printf("Enter the number of pills: ");
scanf("%d", &pills);
printf("Enter the weight of your pills: ");
scanf("%d", &weight);
}
void calc ()
{
bottlenumber = (weight - 210) / (float)0.1;
}
void print()
{
printf("The bottle number is %.f!", bottlenumber);
}
void main()
{
load();
calc();
print();
}
用户输入211.3。然后答案是13,但我得到10.我认为它与浮点方面和计算部分有关。
答案 0 :(得分:1)
weight
是int
,而不是float
,您正在以int
的形式阅读它,因此如果用户输入211.3,那么{ {1}}包含211。
如果您希望weight
成为一个浮点数,那么您应该将其声明为这样并将其读入。
weight
答案 1 :(得分:0)
这一行是问题所在:
bottlenumber = (weight - 210) / (float)0.1;
请记住,为重量输入的值是3。
所以3 - 210 = -207
接下来将-207除以0.1,其中= -2070
我怀疑这行应该有所不同