自己的代码:
#include<stdio.h>
int main() {
int lower,upper;
int fahr;
double celsius;
scanf("%d %d",&lower,&upper);
if(lower>upper||lower>100||upper>100)
printf("Invalid.");
else {
printf("fahr celsius\n");
for(fahr=lower;fahr<=upper;fahr+=2){
celsius=(fahr-32)*5.0/9;
printf("%d%6.1f\n",fahr,celsius);
}
}
return 0;
}
小细节:1. celsius=(fahr-32)*5.0/9;这一句使用5和5.0会有精度上的差异。例如输入32 35,使用5.0,运行结果
fahr celsius
32 0.0
34 1.1
而使用5,运行结果为
fahr celsius
32 0.0
34 1.0
2.我发现对于double类型的变量,如果采用%d赋值,变量值并不会改变,需要使用%lf 或 %f。