#include<stdio.h>
void temperatures(float);
int main()
{
float huashi;//为何改成double调试时输入一个数输出结果是乱码,但是float不会??此处就是问题.麻烦高手指教.
printf("请你输入一个华氏温度:\n");
scanf("%f",&huashi);
printf("华氏温度为%.2f\n",huashi);
temperatures(huashi);
}
void temperatures(float fahrenheit)
{
float celsius=1.8*fahrenheit+32.0;
float kelvin=celsius+273.16;
printf("转化为摄氏度:%.2f\n",celsius);
printf("转化为绝对温度:%.2f\n",kelvin);
}
8 个解决方案
#1
scanf("%f",&huashi) %f --> %lf 试试看
#2
"%f"在 scanf()中是 float,而在 printf() 中是 double
#3
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
1.0是double常量
1.0f是float常量
%f对应float
%lf对应double
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
1.0是double常量
1.0f是float常量
%f对应float
%lf对应double
#4
C很规范的,按类型规范输入呀
#5
没有类型转换,只有格式解析
#6
很纠结!
java 、c++就没这么麻烦....
java 、c++就没这么麻烦....
#7
用c++编译器会让你对错误不敏感
#8
float huashi
void temperatures(float fahrenheit)
要同步修改吧
void temperatures(float fahrenheit)
要同步修改吧
#1
scanf("%f",&huashi) %f --> %lf 试试看
#2
"%f"在 scanf()中是 float,而在 printf() 中是 double
#3
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
1.0是double常量
1.0f是float常量
%f对应float
%lf对应double
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
1.0是double常量
1.0f是float常量
%f对应float
%lf对应double
#4
C很规范的,按类型规范输入呀
#5
没有类型转换,只有格式解析
#6
很纠结!
java 、c++就没这么麻烦....
java 、c++就没这么麻烦....
#7
用c++编译器会让你对错误不敏感
#8
float huashi
void temperatures(float fahrenheit)
要同步修改吧
void temperatures(float fahrenheit)
要同步修改吧