PTA练习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.

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
int main()
{
double celsius;
int lower;
int upper;
int fahr;

scanf("%d %d", &lower,&upper);
if(lower <= upper && 0<lower && lower<=100 && upper<=100 && upper>0){
printf("fahr celsius\n");
for(fahr=lower;fahr<=upper;fahr=fahr + 2){
celsius = 5.0 * (fahr - 32)/9.0 ;
printf("%d%6.1f\n", fahr,celsius);
}
}else {
printf("Invalid.");
return 0;
}
return 0;
}

知识点:

1.C语言如果控制字符宽度和保留指定的小数数位
在输出时:**%字符宽度.小数数位f**

2 a.c: In function ‘main’:
a.c:9:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
(void)scanf(“%d %d”, &lower,&upper);
^~

当报出如下错误时,不一定是输入有问题,有可能是输出,算法有问题。所以此时你可以对你的所有代码进行检查。