将5华氏温度从华氏温度转换为摄氏温度
每天,气象站会以华氏度表示5个温度。编写一个程序以华氏温度接受温度,将其转换为摄氏温度并在屏幕上显示转换后的温度。 5个温度之后,消息“处理所有温度”应显示在屏幕将5华氏温度从华氏温度转换为摄氏温度
我的回答是低于
#include <stdio.h>
main()
{
int fah, cel;
printf("\nEnter 5 temperatures in Fahrenheit: ");
scanf("%d %d %d %d %d", &fah);
do
{
cel=(fah-32)*(5/9);
printf("\n These temperatures converted to Celsius are: %d \n", cel);
}
while(fah);
}
你在整数工作 - > 5/9被转化从而为整数0结果也将等于0.您需要使用float
/double
类型或更改计算以最小化此类舍入误差,例如像这样:cel=(5*(fah-32))/9;
- 这里的乘法先完成,然后再进行除法。
scanf("%d %d %d %d %d", &fah);
您在转换说明符中使用了5 %d
,但只使用了一个变量。
cel=(fah-32)*(5/9);
在这里,你使用整数除法,改变变量的类型double
和5/9
到5.0/9
我可以得到直接的解决方案吗?我完全搞砸了我知道,但我很困惑,我试过,也许如果你告诉我生病能够理解 – gadoora
@gadoora - 阅读好的答案,并在其中工作。这是学习这些东西的唯一方法,诚实!提示 - 分解你的问题 - 先让它处理一个值,然后考虑把它扩展到五个。 –
@gadoora Martin的权利,你最好一步一步地尝试。 –
让一个采取这一个 -
-
scanf("%d %d %d %d %d", &fah);
:要扫描5值,而您只使用一个%d
。其他四个值呢?您应该使用5个值的数组。 -
cel=(fah-32)*(5/9);
:你除以9,两者都是整数。将整数除以另一个整数a/b的结果,其中a < b为0.因此cel
将始终为0.您必须将其中一个整数转换为float/double。 - 如果您使用数组,则需要遍历数组的所有元素来处理它们。
我故意不提供所有这些的直接解决方案。我建议你看看这些东西并理解它们,因为它们是用C语言编程的基础。
我去哪里错了?你没有准确地发布你的问题是什么? –
你的问题到底是什么? (除了无限循环) –
那么,该程序,除了越野车,并没有做什么要求。要求您在5个温度后终止,而不是在零输入之后终止,并且您被要求打印状态消息。 –