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

Categories

0 votes
412 views
in Technique[技术] by (71.8m points)

C programming program only printing the first value in my variable

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

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

1 Answer

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...