英文题,题不难,挺有意思的,是个解密的过程。
代码:
/*
by qr jobdu 1485 2014-9-20
*/
#include <stdio.h>
#include <string.h>
int main(){
int k1,k2,k3;
while(1){
char str[80];
char destr[80];
int indexk1[80];
int index1=0;
int indexk2[80];
int index2=0;
int indexk3[80];
int index3=0; //以上这些要重新声明
scanf("%d",&k1);
scanf("%d",&k2);
scanf("%d",&k3);
if(k1==0 && k2==0 && k3==0)
break;
scanf("%s",&str);
int len=strlen(str);
int i;
for(i=0;i<len;i++){
if(str[i]>='a' && str[i]<='i'){ //k1
indexk1[index1++]=i;
continue;
}
if(str[i]>='j' && str[i]<='r'){ //k2
indexk2[index2++]=i;
continue;
}
if(str[i]>='s' && str[i]<='z' || str[i]=='_'){ //k3
indexk3[index3++]=i;
}
}
int m,n;
for(i=0;i<index1;i++){
m=indexk1[i];
n=indexk1[(i+k1)%index1];
destr[n]=str[m];
}
for(i=0;i<index2;i++){
m=indexk2[i];
n=indexk2[(i+k2)%index2];
destr[n]=str[m];
}
for(i=0;i<index3;i++){
m=indexk3[i];
n=indexk3[(i+k3)%index3];
destr[n]=str[m];
}
destr[len]='\0';
printf("%s\n",destr);
}
return 0;
}