我正在尝试使这个程序工作,但没有成功。该程序涉及使用float类型的算术,并包含函数temperature(),将华氏温度转换为摄氏温度。该函数从for
循环获取输入,但是当我执行它时,我只获得第一次转换。我究竟做错了什么?这是代码:
#include<stdio.h>
float temperature(int);
int main() {
int i;
for (i = 0; i <= 300; i = i + 20)
printf("%3d\t%6.2f\n", i, temperature(i));
return 0;
}
float temperature(int m) {
float low, up, step, f, t;
float j = 5.0/9.0;
for (f = low; f <= up; f = f + step)
t = j * (f - 32.0);
return t;
}
答案 0 :(得分:2)
正如其他人所说。调试代码的最佳方法是分析它。您必须了解代码的作用。规划你的代码。在问这里之前尽力解决问题 - 这是最好的学习方法。
我相信这是你想要实现的目标:
#include <stdio.h>
int main() {
float fahr, celsius;
int lower, upper, step;
lower = 0;
upper = 300;
step = 20;
fahr = lower;
while (fahr <= upper) {
celsius = (5.0/9.0) * (fahr-32.0);
printf("%3.0f\t%6.2f\n", fahr, celsius);
fahr = fahr + step;
}
}
仔细阅读代码。上面的例子只有一个功能。您可以通过一个函数负责温度转换并从主循环从0到300循环,轻松将其拆分为两个函数。 如果有什么事情没有意义 - 请问!这就是本论坛的用途。
#include <stdio.h>
float convert (float fahr) {
float celsius = (5.0/9.0) * (fahr-32.0);
return celsius;
}
int main() {
int lower, upper, step;
lower = 0;
upper = 300;
step = 20;
float fahr = lower;
while (fahr <= upper) {
printf("%3.0f\t%6.2f\n", fahr, convert(fahr));
fahr = fahr + step;
}
}