讨论 / 有注释
Biuuuuuuuu 2015-07-10 23:53:42
点我顶贴 收藏 删除
#include<stdio.h>

#include<string.h>

int main()

{

// freopen("518.in","r",stdin);

char f[101],s[101],t[101],o[26];/*密文;明文;需翻译,密匙*/

memset(o,33,sizeof(o));

int a,b,i,j;

scanf("%s%s%s",f,s,t);

a=0; b=0;

for(i=0;i<=strlen(f)-1;i++)/*从0位开始读f*/

{

if(o[f[i]-65]==33) /*判断是否是初次读取*/

{

o[f[i]-65]=s[i];/*o[0-25]对应的ASCII码就为A-Z对应的密文*/

a++; /*初次读取计数,可记录不同字母出现次数*/

for(j=0;j<=25;j++)/*检测该密匙是否重复使用*/

{if((o[f[i]-65]==o[j])&&((f[i]-65)!=j)) b++;}

}

else if(o[f[i]-65]!=s[i]) b++;

}

if(b!=0||a<26)

printf("Failed\n");

else

for(i=0;i<=strlen(t)-1;i++)

{printf("%c",o[t[i]-65]);}

// printf("\n%s\n%s\n%s\n%s",f,s,t,o);

return 0;

}

查看更多回复
提交回复