合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
一、题目描述 ⭐️
练习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.
二、代码(C语言)⭐️
#include <stdio.h>
// 定义一个函数 getC,用于将华氏温度 f 转换为摄氏温度 c 并打印结果
void getC(int f) {
// 根据公式计算摄氏温度 c:C = 5 * (F - 32) / 9
double c = 5.0 * (f - 32.0) / 9.0;
// 打印华氏温度 f 和对应的摄氏温度 c,格式为 "f c"
// %d 用于打印整数 f,%6.1f 用于打印浮点数 c,保留 1 位小数,宽度为 6
printf("%d%6.1f\n", f, c);
}
// 主函数
int main() {
int lower, upper; // 定义两个整数变量 lower 和 upper,表示温度范围的下限和上限
// 从用户输入中读取两个整数,分别赋值给 lower 和 upper
scanf("%d %d", &lower, &upper);
// 检查输入的有效性:lower 必须小于等于 upper,且 upper 必须小于等于 100
if (lower <= upper && upper <= 100) {
// 如果输入有效,打印表头 "fahr celsius"
printf("fahr celsius\n");
// 使用 for 循环遍历从 lower 到 upper 的温度范围,每次增加 2
for (int i = lower; i <= upper; i += 2) {
// 调用 getC 函数,将当前华氏温度 i 转换为摄氏温度并打印
getC(i);
}
} else {
// 如果输入无效,打印 "Invalid."
printf("Invalid.");
}
return 0; // 程序正常结束
}