pta中输出华氏-摄氏温度转换表
#include
int main(void)
{
int low,up,d;
double c;
scanf("%d %d",&low,&up);
if(low>up || up>100)
{
printf("Invalid.");
}
else
{
printf("fahr celsius\n");
d=low;
for(;d<=up;d=d+2)
{
c=5*(d-32)/9;
printf("%d%6.1lf\n",d,c);
}
}
return 0;
}
一直显示部分错误
但是将 c=5*(d-32)/9; 改成 c=5.0*(d-32)/9; 就对了。想请问这是为什么。
5*(d-32)/9这个表达是里都是int型整数,所以他计算出来的结果会舍去小数部分,所以结果会是错误的,改成c=5.0*(d-32)/9; 里面有个5.0的double型浮点数,所以整个结果会变成double型,它会保留完整的双精度浮点数运算结果,所以结果就是正确的了。
你打印一下不就知道了吗?c=5*(d-32)/9;==>得到的是整数 ,c=5.0*(d-32)/9;==》得到的是浮点数
题目是怎样的,方便把题目贴上来。