我一开始的代码是这样的:
#include <bits/stdc++.h>
using namespace std;
string s;
int a[200];
int main(){
cin>>s;
for(int i=0; i<s.size(); i++){
if('a'<=s[i]&&s[i]<='z'&&s[i+1]==':') {
if('0'<=s[i+3]&&s[i+3]<='9'){
a[s[i]-'a']=s[i+3]-'0';
}
else {
a[s[i]-'a']=a[s[i+3]];
}
}
}
cout<<a[0]<<" "<<a[1]<<" "<<a[2];
return 0;
}
20分。。
后来改成这样:
#include <bits/stdc++.h>
using namespace std;
string s;
int a[200];
int main(){
cin>>s;
for(int i=0; i<s.size(); i++){
if('a'<=s[i]&&s[i]<='z'&&s[i+1]==':') {
if('0'<=s[i+3]&&s[i+3]<='9'){
a[s[i]]=s[i+3]-'0';
}
else {
a[s[i]]=a[s[i+3]];
}
}
}
cout<<a[97]<<" "<<a[98]<<" "<<a[99];
return 0;
}
过了? 为什么?有没有大佬解释一下?