浙大版《C语言程序设计(第4版)》题目集2-12
输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper]、且每次增加2华氏度的华氏-摄氏温度转换表。
温度转换的计算公式:C=5×(F−32)/9,其中:C表示摄氏温度,F表示华氏温度。
输入格式:
在一行中输入2个整数,分别表示lower和upper的值,中间用空格分开。
输出格式:
第一行输出:"fahr celsius"
接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius(占据6个字符宽度,靠右对齐,保留1位小数)。
若输入的范围不合法,则输出"Invalid."。
输入样例1:
32 35
输出样例1:
fahr celsius
32 0.0
34 1.1
输入样例2:
40 30
输出样例2:
Invalid.
这样的代码就通过了示例测试。
#include <stdio.h>
int main(){
int lower;
int upper;
int fahr;
double c;
scanf("%d %d",&lower,&upper);
if(lower>upper){
printf("Invalid.");
}
else{
printf("fahr celsius\n");
for(fahr=lower;fahr<=upper;fahr=fahr+2){
c=5.0*(fahr-32)/9.0;
printf("%d%6.1f\n",fahr,c);
}
}
}
而这个就没有通过。
#include <stdio.h>
int main(){
int lower;
int upper;
int fahr;
double c;
scanf("%d %d",&lower,&upper);
if(lower>upper){
printf("Invalid.");
}
else{
printf("fahr celsius\n");
for(fahr=lower;fahr<=upper;fahr=fahr+2){
c=5*(fahr-32)/9;
printf("%d%6.1f\n",fahr,c);
}
}
}
我发现在输入“32 35”时上面的代码输出的是
fahr celsius
32 0.0
34 1.1
而下面的输出的就是
fahr celsius
32 0.0
34 1.0
求解。