每天,气象站接收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);
}
答案 0 :(得分:3)
scanf("%d %d %d %d %d", &fah);
您在转化说明符中使用了5 %d
,但只使用了一个变量。
cel=(fah-32)*(5/9);
在这里,您使用了整数除法,将变量的类型更改为double
,将5/9
更改为5.0/9
答案 1 :(得分:3)
让我们一个接一个 -
scanf("%d %d %d %d %d", &fah);
:您只想使用一个%d
时扫描五个值。其他四个值怎么样?您应该使用5个值的数组。cel=(fah-32)*(5/9);
:你将5除以9,两者都是整数。将整数除以另一个的结果,a / b,其中a cel将始终为0.您必须将其中一个整数转换为float / double。我故意不直接解决所有这些问题。我建议你查看这些内容并理解它们,因为它们非常适合用C编程。
答案 2 :(得分:1)
你在整数工作 - &gt; 5/9转换为整数0,因此结果也将等于0.您需要使用float
/ double
类型或更改计算以最小化此类舍入错误,例如像这样的东西:cel=(5*(fah-32))/9;
- 这里乘法先完成,然后再划分。