关于#C语言#的问题,如何解决?

编一个简简单单的温度转换,但是似乎发生了一些难以理解的错误

#include<stdio.h>

int main(void)
{
float F=0,C=0;
scanf("请输入一个华氏温度:%f",F);
C=5*(F-35)/9;
printf("与该华氏温度对应的摄氏温度为:%.2f", C);
return 0;
}

当输入为-40时
运行出来时-19.44 ,但是不应该是-41.44吗?

scanf("请输入一个华氏温度:%f",&F); ==> 输入格式:请输入一个华氏温度:-40
修改处见注释,供参考:

#include<stdio.h>
int main(void)
{
    float F=0,C=0;
    printf("请输入一个华氏温度:"); //scanf("请输入一个华氏温度:%f",F);
    scanf("%f",&F);                 // &F ,变量前缺少 & 符
    C=5*(F-35)/9;
    printf("与该华氏温度对应的摄氏温度为:%.2f", C);
    return 0;
}

scanf()函数详细说明,供参考:https://baike.baidu.com/item/scanf/10773316?fr=aladdin


scanf("请输入一个华氏温度:%f",&F);


#include<stdio.h>

int main(void)
{
float F=0,C=0;
scanf("请输入一个华氏温度:%f",&F);
C=5*(F-35)/9;
printf("与该华氏温度对应的摄氏温度为:%.2f", C);
return 0;
}

用scanf输入要带&

你那个scanf输入没加地址符&,所以那个F没改变还是原来的0。所以最后结果c=5*(0-35)/9,算出来-19.44

这里:
scanf("请输入一个华氏温度:%f",&F);