题目描述
小杨这周的数学作业是做单位转换,喜欢编程的小杨决定编程帮他解决这些问题。
小杨只学了长度单位和重量单位,具体来说:
-
长度单位包括千米(
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,表示程序正常结束