这个代码错哪了?
题目在http://noi.openjudge.cn/ch0107/11/
#include<iostream>
#include<string.h>
using namespace std;
int main(){
char a[200],b[200],c[200];
cin.getline(a,200);
cin.getline(b,200);
cin.getline(c,200);
int i,m=strlen(a),l,w=strlen(c),e;
for(i=0;i<m;i++){
for(l=0;l<m;l++){
if(a[l]==a[i]&&b[l]!=b[i]){ //排除一个密码对应多个原文
cout<<"Failed";
return 0;
}
}
}
for(i=0;i<m;i++){
for(l=0;l<m;l++){
if(b[l]==b[i]&&a[l]!=a[i]){ //排除一个原文对应多个密码
cout<<"Failed";
return 0;
}
}
}
for(i=0;i<w;i++){
for(l=0;l<m;l++){
e=0;
if(c[i]==a[l]){
c[i]=b[l]; //如果c中字符==a中字符,将c的字符转换为b中字符
e=1;
break;
}
}
if(e==0){
cout<<"Failed"; //e用来排除原文不在已知密码中
return 0;
}
}
for(i=0;i<w;i++){
cout<<c[i];
}
}