关于s1e8课后题中float和double的小问题
#include<stdio.h>#include<math.h>
int main()
{
float i,j;
printf("请输入华氏度:");
scanf("%f",&i);
j = (i-32)*5/9;
printf("转换为摄氏度是:%.2f\n",j);
return 0;
}
为什么代码中仅仅是把float换成double输出就不一样了,double不是比float精度更高嘛? 转换成double时有没有scanf中的f变成lf 顺便再问一个问题
#include<stdio.h>
int main()
{
char a;
float b,c;
printf("请输入您的姓名:");
scanf("%s",a);
printf("请输入您的身高(cm):");
scanf("%f",&b);
printf("请输入您的体重(kg):");
sacnf("%f",&c);
printf("==============正在为您转换==============\n");
b = b/2.54;
b = c/0.45359237;
printf("%s的身高是%.2f(in),体重是%.2f(lb)\n",a,b,c);
return 0;
}
输出结果为/tmp/ccRnKw1i.o: In function `main':
wrok2.c:(.text+0x6d): undefined reference to `sacnf'
collect2: ld returned 1 exit status
盼望流星 发表于 2020-7-1 23:54
顺便再问一个问题
输出结果为
第十五行scanf打成了sacnf...... // 将输入的
%f
// 改成
%lf 盼望流星 发表于 2020-7-1 23:54
顺便再问一个问题
输出结果为
提示上面说了,并用引号标出了sacnf。要不是这个提,我还没发现。另外,你的代码有误。b用体重除以了2.54,然后又给它赋值为c/0.45359237。那么b=b/2.54就没有任何意义了。
我猜你是想C=C/0.45359237吧? lll_jh888 发表于 2020-7-1 23:45
转换成double时有没有scanf中的f变成lf
原来如此 lll_jh888 发表于 2020-7-2 00:02
第十五行scanf打成了sacnf......
啊啊啊啊。。。晕了我 405794672 发表于 2020-7-2 08:25
提示上面说了,并用引号标出了sacnf。要不是这个提,我还没发现。另外,你的代码有误。b用体重除以了2.54 ...
发现了。。。。 BIGLUO 发表于 2020-7-2 02:45
为什么a【256】后面得写个256啊,不写不行吗
页:
[1]