#include<stdio.h>
int main()
{
int lower,upper,fahr;
double celsius;
scanf("%d %d",&lower,&upper);
if(lower<=upper&&lower<=100&&upper<=100)
{
fahr=lower;
printf("fahr celsius\n");
while(lower<=upper)
{
celsius=5.0*(fahr-32)/9;
//这个地方加重!!!
printf("%d%6.1f\n",fahr,celsius);
lower=lower+2;
fahr=lower;
}
}
else
{
printf("Invalid\n");
}
return 0;
}
自身不清楚的地方是整形和浮点数的计算问题上,类如
在计算C=5×(F−32)/9时,即使定义了celsius是double类型,并采用%6.1f的格式输出,结果是1.0而不是1.1。这是因为facr的类型时整型,5、32、9都是整型,所以每一步的计算结果都是按整型存储的,最后计算结果celsius是浮点型保留一位小数,所以在小数点后面补了一个0,输出1.0。所以其中的一个整数一定要写成浮点数的形式,如C=5.0×(F−32)/9。
但是要是将具体的的原因自己也是部清楚,姑且将它记住好了。
引用:https://blog.csdn.net/melody_1016/article/details/82289325