Le programme de conversion de la température C maintient la sortie de 0 pour Fahrenheit en Celsius

Mon programme de conversion de température en C continue à afficher 0 lorsque je tente de convertir Fahrenheit en Celsius. La conversion de Celsius à Fahrenheit semble bien fonctionner. J’ai fait exactement la même chose pour les fonctions et les portions, mais je continue à obtenir 0 pour la deuxième conversion. Quelqu’un peut-il m’aider s’il vous plaît ou me dire ce que je fais mal?

#include  //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; } 

     cel = (fah-32) * (5/9); 

    Ici, 5/9 est une division entière, son résultat est 0 , changez-le en 5.0/9


    Et dans plusieurs lignes, vous utilisez

     scanf("%f", &*Celsius); 

    &* n’est pas nécessaire, simplement scanf("%f", Celsius); ferait.

     cel = (fah-32) * (5/9); 

    5/9 est int/int et vous donnera les résultats en int donc 0 .

    Le changer en

     cel = (fah-32) * (5.0/9.0); 

    ou

     cel = (fah-32) * ((float)5/(float)9);