将5个温度从华氏温度转换为摄氏温度

时间:2013-08-20 08:49:10

标签: c scanf temperature

每天,气象站接收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);
}

3 个答案:

答案 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; - 这里乘法先完成,然后再划分。