C编程程序只打印变量中的第一个值

C编程程序只打印变量中的第一个值,c,C,当我打印“NewTemp”时,程序仅显示32 NewTemp=32+输入*180/100;这部分似乎是主要问题 #include <stdio.h> float celsius(float input) { float NewTemp; **NewTemp = 32 + input * 180/100; printf("Please enter the temperature value to convert to fahrenheit\n");

当我打印“NewTemp”时,程序仅显示32 NewTemp=32+输入*180/100;这部分似乎是主要问题

#include <stdio.h>

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

    return NewTemp;

}

int main(void){
 float CelToFahren, input;
    CelToFahren = celsius(input);
}
#包括
浮动摄氏度(浮动输入){
浮动新时点;
**NewTemp=32+输入*180/100;
printf(“请输入要转换为华氏温度的温度值\n”);
scanf(“%f”,&input);
printf(“摄氏温度为:%f\n”,新摄氏度);
返回NewTemp;
}
内部主(空){
浮点数,输入;
CelToFahren=摄氏度(输入);
}

在阅读输入之前先进行数学运算。你需要反过来做

此外,没有理由将一个无意义且未初始化的值传递给
celsius
函数

最后,
180/100
是1余数80,因为当你除以两个整数时,你得到整数除法。您可以使用
180.0/100.0


基本上,你需要学习C。

这个
180
很好,因为
input
是一个floatRight,但是下次他会写
32+input*(180/100)
,他的代码会断开。我意识到为什么括号会断开代码,但我还是迷路了“此外,没有理由将无意义且未初始化的值传递给Celsium函数。“celsius函数不需要向其传递值。而您的
main
函数则向其传递
input
的值,您从未将其设置为任何特定值。因此,您传递的是函数垃圾,它会忽略它。哦,我明白了,因此,只有当我使用多个函数并传入时,我才会向其传递值。”g?C是一种过程语言——行一行接一行地执行。您的行起始
NewTemp
不定义公式;它执行基于公式计算值的步骤。(定义公式的语言通常称为“函数式语言”).
NewTemp
不是指向浮点的指针,因此
**NewTemp
是完全没有意义的。