#include<stdlib.h>
int main(void)
{
char a[101];
char b[101];
char put[101];
int i;
int m,n;
scanf("%s\n",a);
scanf("%s\n",b);
scanf("%s\n",put);
char rm[27];
rm[1]='A';
rm[2]='B';
rm[3]='C';
rm[4]='D';
rm[5]='E';
rm[6]='F';
rm[7]='G';
rm[8]='H';
rm[9]='I';
rm[10]='J';
rm[11]='K';
rm[12]='L';
rm[13]='M';
rm[14]='N';
rm[15]='O';
rm[16]='P';
rm[17]='Q';
rm[18]='R';
rm[19]='S';
rm[20]='T';
rm[21]='U';
rm[22]='V';
rm[23]='W';
rm[24]='X';
rm[25]='Y';
rm[26]='Z';
int wm[27]={0};//出现次数
int dm[27]={0};//对应关系
int am[27]={0};//出现次数
int rdm[27]={0};//真对应关系
int y,p;
for(i=0;a[i];i++)
{
m=a[i]-64;
n=b[i]-64;
wm[m]++;
wm[n]++;
if(am[m]==0)
{
dm[m]=n;
rdm[m]=n;
am[m]++;
}
else
{
if(rdm[m]!=n)
{
printf("Failed\n");
y=1;
p=1;
break;
}
}
}
if(p!=1)
{
for(i=0;a[i];i++)
{
if(wm[a[i]-64]==1)
{
printf("Failed\n");
y=1;
break;
}
}
}
if(y!=1)
{
for(i=0;put[i];i++)
{
if(dm[put[i]-64]!=0)
{
printf("%c",rm[dm[put[i]-64]]);
}
else
{
printf("Failed\n");
}
}
}
return 0;
}
输入:
A
A
A
正确输出:
Failed
为什么这个数据是Failed呢?