Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

Program only displaying the 32 for when I have it print "NewTemp" NewTemp = 32 + input * 180/100; this part seems like the main problem

#include <stdio.h>

float celsius(float input) {
    float NewTemp;
    **NewTemp = 32 + input * 180/100; 
    printf("Please enter the temperature value to convert to fahrenheit
");
    scanf("%f", &input);
    printf("The temperature in celsius is: %f
", NewTemp);

    return NewTemp;

}

int main(void){
 float CelToFahren, input;
    CelToFahren = celsius(input);
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
416 views
Welcome To Ask or Share your Answers For Others

1 Answer

You do the math before you read the input. You need to do it the other way around.

Also, there's no reason to pass a meaningless and uninitialized value to the celsius function.

Lastly, 180/100 is 1 remainder 80 because when you divide two integers, you get integer division. You can use 180.0/100.0.

Basically, you need to learn C.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...