【发布时间】:2020-11-01 17:56:36
【问题描述】:
最初对于多个华氏度值,从华氏度到摄氏度存在问题。 现在在问题 1-15 中,我们必须为这个任务使用一个函数。 以下是我的代码:
#include<stdio.h>
float temp_conv(float n);
int main()
{
float lower, upper, step;
int i;
lower= 0;
upper= 300;
step= 20;
for(i=0; i<=(upper-lower)/step; ++i)
printf("%5.1f\t%6.2f\n", i*step, temp_conv(i*step));
}
float temp_conv(float n)
{
float fahr, celsius;
celsius= (5.0/9.0)*(fahr-32.0);
return celsius;
}
并且正在产生以下输出:
0.0 -17.78
20.0 -17.78
40.0 -17.78
60.0 -17.78
80.0 -17.78
100.0 -17.78
120.0 -17.78
140.0 -17.78
160.0 -17.78
180.0 -17.78
200.0 -17.78
220.0 -17.78
240.0 -17.78
260.0 -17.78
280.0 -17.78
300.0 -17.78
我在函数 temp_conv 中传递了不同的值,但它也产生了 0 华氏度的转换值。也许这个函数有问题,但是它是如何计算 0 华氏度的摄氏值的?
请帮忙。
【问题讨论】:
-
变量
fahr是干什么用的?真的应该是n的论点吗? -
另外几个注意事项:你不需要临时变量
celsius,你可以只做return 5.0 / 9.0 * (n - 32.0);和main函数中的循环,我可能会这样做@987654328 @,然后将current传递给函数。 -
应该有一个编译器警告,比如“使用了未初始化的局部变量 'fahr'”。小心它们。
标签: c function declaration