求调代码!
#include <bits/stdc++.h>
//#include <stdio.h>
using namespace std;
/*
inline int read(){
int x = 0, f = 1;
char ch = getchar();
while(ch < '0' || ch > '9'){
if(ch == '-') f = -1;
ch = getchar();
}
while(ch >= '0' && ch <= '9'){
x = x * 10 + ch - '0';
ch = getchar();
}
return (x * f);
}*/
int number[6];
inline int valuenum(int len){
int tmp = 0, ans = 0;
for(int i = len; i >= 0; i--){
ans += number[i] * pow(10, tmp);
tmp++;
}
return ans;
}
inline void printinfo(string dw1, string dw2, int tmp){
int anum = valuenum(tmp), ans;
if(dw1 == "km" || dw1 == "m" || dw1 == "mm"){
if(dw1 == "km"){
if(dw2 == "m") ans = anum * 1000;
else ans = anum * 1000000;
}else if(dw1 == "m"){
ans = anum * 1000;
}
}else{
if(dw1 == "kg"){
if(dw2 == "m") ans = anum * 1000;
else ans = anum * 1000000;
}else{
ans = anum * 1000;
}
}
cout << anum << ' ' << dw1 << " = " << ans << ' ' << dw2 << endl;
}
int main(){
string s, dw1 = "", dw2 = "";
int n, tmp = -1;
cin >> n;
while(n--){
getline(cin, s);
for(int i = 0; s[i] != '-'; i++){
if(s[i] >= '0' && s[i] <= '9') number[++tmp] = s[i] - '0';
if(s[i] >= 'a' && s[i] <= 'z') dw1 = dw1 + s[i];
}
for(int i = s.find('='); i < s.size(); i++) if(s[i] >= 'a' && s[i] <= 'z') dw2 = dw2 + s[i];
printinfo(dw1, dw2, tmp);
dw1 = "";
dw2 = "";
for(int i = 0; i < 6; i++) number[i] = 0;
}
return 0;
}
/*
input:
2
1 km = ? mm
1 m = ? mm
-----------------
output:
-2147483648 pxxhhrppppppp = 0
1 km = ? mm
-2147483648 kmmmymmmymmmymmmymmyypxxhhrpppppppxxhhrppppppp = 0 mm
*/