C函数问题,特别是在计算中

时间:2015-08-13 01:50:32

标签: c function

// 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.我认为它与浮点方面和计算部分有关。

2 个答案:

答案 0 :(得分:1)

weightint,而不是float,您正在以int的形式阅读它,因此如果用户输入211.3,那么{ {1}}包含211。

如果您希望weight成为一个浮点数,那么您应该将其声明为这样并将其读入。

weight

答案 1 :(得分:0)

这一行是问题所在:

bottlenumber = (weight - 210) / (float)0.1;

请记住,为重量输入的值是3。

所以3 - 210 = -207

接下来将-207除以0.1,其中= -2070

我怀疑这行应该有所不同