-1

可能重复:
为什么十进制数不能用二进制精确表示?

#include <stdio.h>

int main(void)
{
    int temperature, time;
    float minutes;

    printf("What is the Fahrenheit temperature?\n");
    scanf("%d",&temperature);

    time = (5 - (temperature - 90) / 5);
    minutes = ((5 % time) * 60);


    if (temperature >= 90)
        printf("It will rain at approximately %d hours and %f minutes after noon.\n", time, minutes);

    else
        printf("It will not rain today.\n");


    system("PAUSE");
    return 0;

}

我正在使用 C 编程语言。这是作业,但只要不是整个代码,就可以使用网络上的一些位。无论如何,如果当前温度是 93f time = 4.4所以我想输出:

It will rain approximately 4 hours and 24 minutes after noon但输出是:

It will rain at approximately 5 hours and 0.000000 minutes after noon

编辑:我现在收到一个错误,指出二进制 % 的操作数无效(有 int 和 float)请耐心等待我正在尝试学习的 LOL。

#include <stdio.h>

int main(void)
    {
    int current_temp;
    float remaining_minutes, time;

    printf("What is the temperature in Fahrenheit?\n");
    scanf("%d",&current_temp);

    time = (5 - (current_temp - 90) / 5);
    ERROR**** remaining_minutes = ((5 % time) * 60);


    if (current_temp >= 90)
        printf("It will rain at approximately %d hours and %f minutes after noon.\n", time);

    else
        printf("It will not rain today.\n");


    system("PAUSE");
    return 0;



}
4

4 回答 4

0

您还需要定义您的时间float。现在,您正在将整数除以整数,因此您只能得到整数。

于 2012-10-11T20:07:04.283 回答
0

分钟=(时间%1)* 60怎么样?

编辑:或 mins = (time*10 % 10) * 6. 在我的手机上,所以无法真正测试。

于 2012-10-11T20:08:10.130 回答
0

time是一个int。你不能指望它保存一个浮点数。

于 2012-10-11T20:08:19.870 回答
0

时间 = (5 - (温度 - 90) / 5);

time,5,90 是整数,所以 time = 5 - 0 ...wich 是 5

尝试使用浮动时间和

time = (5.0 - (float)(temperature - 90) / 5);
于 2012-10-11T20:10:22.747 回答