讨论 / 求助,为什么过不了第一个点,其他都能过
spaerk 2010-08-06 23:57:00
点我顶贴 收藏 删除
#include<stdio.h>

#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;

}

#1 ruilianglv@2010-08-03 08:28:00
回复 删除
我通过查看数据发现,第一个点的数据是这样的:

输入:

A

A

A

正确输出:

Failed

为什么这个数据是Failed呢?

#2 dongfanzhu@2010-08-05 23:35:00
回复 删除
回复 沙发ruilianglv 的帖子

要看清题目!!!

要26个字母都有密字0.0

#3 朱星滔@2010-08-06 23:57:00
回复 删除
恭喜楼主

和2009年湖南省省队队长 错误相同

他那年390分 就是 第一个点错了

查看更多回复
提交回复