单位转换

题目描述

小杨这周的数学作业是做单位转换,喜欢编程的小杨决定编程帮他解决这些问题。

小杨只学了长度单位和重量单位,具体来说:

  • 长度单位包括千米(km)、米(m)、毫米(mm),它们之间的关系是: 1km=1000m=1000000mm。

  • 重量单位包括千克(kg)、克(g)、毫克(mg),它们之间的关系是: 1000\text{g} = 1kg=1000g=1000000mg。

小杨的作业只涉及将更大的单位转换为更小的单位,也就是说,小杨的作业只会包含如下题型:米转换为毫米,千米转换为毫米,千米转换为米,克转换为毫克,千克转换为毫克,千克转换为克。

现在,请你帮忙完成单位转换的程序。

输入格式

输入的第一行为一个整数,表示题目数量。

接下来 N 行,每行一个字符串,表示转换单位的题目,格式为 x 单位 1=? 单位 2。其中,x 为一个不超过 1000的非负整数, 单位 1 和 单位 2 分别为两个单位的英文缩写,保证它们都是长度单位或都是重量单位,且 单位 1 比 单位 2 更大。

例如,如果题目需要你将 1km 转换为mm,则输入为 1 km = ? mm

保证 1≤N≤1000。

输出格式

输出 NN 行,依次输出所有题目的答案,输出时,只需要将输入中的 ? 代入答案,其余部分一字不差地输出即可。由于小杨的题目只涉及将更大的单位转换为更小的单位,并且输入的 xx 是整数,因此答案一定也是整数。

例如,如果题目需要你将 1km 转换为 mm,则输入为 1 km = ? mm。则你需要输出 1 km = 1000000 mm

输入输出样例

输入 #1复制

2
1 km = ? mm
1 m = ? mm

输出 #1复制

1 km = 1000000 mm
1 m = 1000 mm

输入 #2复制

5
100 m = ? mm
1000 km = ? m
20 kg = ? g
200 g = ? mg
0 kg = ? mg

输出 #2复制

100 m = 100000 mm
1000 km = 1000000 m
20 kg = 20000 g
200 g = 200000 mg
0 kg = 0 mg
#include <stdio.h> // 包含标准输入输出库,用于进行输入输出操作

int main() { // 主函数的开始
    int n; // 定义一个整型变量n,用于存储题目数量
    scanf("%d", &n); // 从标准输入读取n的值

    for (int i = 0; i < n; i++) { // 循环n次,每次处理一个单位转换问题
        long long int num; // 定义一个长整型变量num,用于存储要转换的数值
        char unit1[4], unit2[4]; // 定义两个字符数组unit1和unit2,用于存储输入的单位
        scanf("%d %s = ? %s", &num, unit1, unit2); // 从标准输入读取数值num和两个单位

        // 下面是一系列的if-else语句,用于判断输入的单位,并进行相应的转换
        if (unit1[0] == 'k' && unit1[1] == 'g' && unit2[0] == 'g') { // 如果单位1是kg,单位2是g
            printf("%d kg = %d g\n", num, num * 1000); // 输出转换结果:kg转换为g
        }
        else if (unit1[0] == 'k' && unit1[1] == 'g' && unit2[0] == 'm' && unit2[1] == 'g') { // 如果单位1是kg,单位2是mg
            printf("%d kg = %d mg\n", num, num * 1000000); // 输出转换结果:kg转换为mg
        }
        else if (unit1[0] == 'g' && unit2[0] == 'm' && unit2[1] == 'g') { // 如果单位1是g,单位2是mg
            printf("%d g = %d mg\n", num, num * 1000); // 输出转换结果:g转换为mg
        }
        else if (unit1[0] == 'k' && unit1[1] == 'm' && unit2[0] == 'm' && unit2[1] == 'm') { // 如果单位1是km,单位2是mm
            printf("%d km = %d mm\n", num, num * 1000000); // 输出转换结果:km转换为mm
        }
        else if (unit1[0] == 'k' && unit1[1] == 'm' && unit2[0] == 'm') { // 如果单位1是km,单位2是m
            printf("%d km = %d m\n", num, num * 1000); // 输出转换结果:km转换为m
        }
        else if (unit1[0] == 'm' && unit2[0] == 'm' && unit2[1] == 'm') { // 如果单位1是m,单位2是mm
            printf("%d m = %d mm\n", num, num * 1000); // 输出转换结果:m转换为mm
        }
    } // for循环结束
}
return 0; // 主函数返回0,表示程序正常结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值