我无法弄清楚我需要做些什么来让我的代码工作,我尝试了一些事情,但同样的错误不断发生。我不确定如何继续,代码的主要问题似乎是将小时和分钟转换为仅数小时。我知道这是一个非常基本的问题,但我是初学者,似乎无法找到解决方案。
// freezer.c
// Estimates the temperature in a freezer given the elapsed time since a power failure.
#include <stdio.h>
#include <math.h>
int main(void) {
float dec_time, // input - time in hours and minutes.
temperature, // output - temperature in degrees celsius
hours, // input for dec_time
minutes; // input for dec_time
/* Get the time in hours and minutes */
printf("hours and minutes since power failure: ");
scanf("%lf%lf", &hours &minutes);
/* Convert the time in hours and minutes into only hours in real number */
dec_time = hours + (minutes / 60.0);
// Using time via an equation to estimate the temperature
temperature = ((4 * dec_time * dec_time) / (dec_time + 2)) - 20;
// Display the temperature in degrees celsius
printf("Temperature in freezer %9.2f.\n", temperature);
return 0;
}
任何人都可以给予解释的任何解释将非常感谢。
编辑:当我将逗号添加到计算机代码中的scanf()
语句时,标题中的主要编译错误已解决。我还将%lf
更改为%f
,但现在当我将单个数字键入a.out
时,例如3,程序直到我键入q
!才会计算。
答案 0 :(得分:3)
将scanf("%lf%lf", &hours &minutes)
更改为scanf("%f%f", &hours, &minutes)
。否'l'
,@melpomene添加逗号@Anton Malyshev。
还建议检查结果是否为2.(成功扫描了2个字段)。
if (2 != scanf("%f%f", &hours, &minutes)) {
puts("Input error");
exit(1);
}
答案 1 :(得分:2)
scanf("%lf%lf", &hours &minutes);
^ comma needed
您错过了逗号,
。
重写如下 -
scanf("%f%f",&hours,&minutes); // make sure you use only %f and not %lf
答案 2 :(得分:1)
你错过了逗号,它应该如何:scanf("%lf%lf", &hours, &minutes)