解析:循环加多重判断,详见代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
long long k, ans;
string a, b;
char c;
cin >> n;
for(int i = 1; i <= n; i++) {
cin >> k >> a >> c >> c >> b;
if (a == "g") {
if (b == "kg") {
ans = k / 1000;
} else if(b == "mg") {
ans = k * 1000;
} else {
ans = k;
}
} else if(a == "kg") {
if (b == "g") {
ans = k * 1000;
} else if(b == "mg") {
ans = k * 1000000;
} else {
ans = k;
}
} else if(a == "mg") {
if (b == "g") {
ans = k / 1000;
} else if(b == "kg") {
ans = k / 1000000;
} else {
ans = k;
}
} else if (a == "m") {
if (b == "km") {
ans = k / 1000;
} else if(b == "mm") {
ans = k * 1000;
} else {
ans = k;
}
} else if(a == "km") {
if (b == "m") {
ans = k * 1000;
} else if(b == "mm") {
ans = k * 1000000;
} else {
ans = k;
}
} else if(a == "mm") {
if (b == "m") {
ans = k / 1000;
} else if(b == "km") {
ans = k / 1000000;
} else {
ans = k;
}
}
cout << k << " " << a << " = " << ans << " " << b << endl;
}
return 0;
}