2025-03-13 学习记录--C/C++-PTA 练习2-12 输出华氏-摄氏温度转换表

发布于:2025-03-14 ⋅ 阅读:(14) ⋅ 点赞:(0)

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️

练习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; // 程序正常结束
}

在这里插入图片描述