C温度转换程序保持输出0华氏温度至摄氏温度

0 c stdio temperature output

当我尝试将华氏温度转换为摄氏温度时,我在C中的温度转换程序保持输出0.从摄氏温度到华氏温度的转换似乎工作正常.对于函数和部分我都做了完全相同的事情但是第二次转换时我一直得到0.有人可以帮助我或告诉我我做错了什么?

#include <stdio.h>

//Function Declarations

float get_Celsius (float* Celsius);       //Gets the Celsius value to be converted.
void to_Fahrenheit (float cel);           //Converts the Celsius value to Fahrenheit and prints   the new value.
float get_Fahrenheit (float* Fahrenheit); //Gets the Fahrenheit value to be converted.
void to_Celsius (float fah);              //Converts the Fahrenheit value to Celsius and prints the new value.

int main (void)
{
   //Local Declarations
   float Fahrenheit;
   float Celsius;
   float a;
   float b;

   //Statements
   printf("Please enter a temperature value in Celsius to be converted to Fahrenheit:\n");
   a = get_Celsius(&Celsius);
   to_Fahrenheit(a);
   printf("Please enter a temperature value in Fahrenheit to be converted to Celsius:\n");
   b = get_Fahrenheit(&Fahrenheit);
   to_Celsius(b);

   return 0;
} //main

float get_Celsius (float* Celsius)
{
   //Statements
   scanf("%f", &*Celsius);
   return *Celsius;
}

void to_Fahrenheit (float cel)
{
   //Local Declarations
   float fah;

   //Statements
   fah = ((cel*9)/5) + 32;
   printf("The temperature in Fahrenheit is: %f\n", fah);
   return;
}

float get_Fahrenheit (float* Fahrenheit)
{
   //Statements
   scanf("%f", &*Fahrenheit);
   return *Fahrenheit;
}

void to_Celsius (float fah)
{
   //Local Declarations
   float cel;

   //Statements
   cel = (fah-32) * (5/9);
   printf("The temperature in Celsius is: %f\n", cel);
   return;
}
Run Code Online (Sandbox Code Playgroud)

Yu *_*Hao 5

cel = (fah-32) * (5/9);
Run Code Online (Sandbox Code Playgroud)

这里,5/9是整数除法,其结果是0,将其改为5.0/9


在几行中,您正在使用

scanf("%f", &*Celsius);
Run Code Online (Sandbox Code Playgroud)

&*没有必要,只是scanf("%f", Celsius);会这样做.