int main(){
int s;
int a;
char k[1000];
while(cin>>s,gets(k)){
int n=(int)(s%26);
for(int i=0;i<=strlen(k);i++){
if(k[i]>=('a'+n)){
cout<<char(k[i]-n);
}
else if(k[i]>='a'&&k[i]<=('a'+n)){
cout<<char(k[i]+26-n);
}
else{
cout<<k[i];
}
}
cout<<endl;
}
return 0;
}
将字母表(26个)按顺序围成一个闭合的圆环 对于给定一个正整数n(n<128),表示圆环移动相应的位数,如n=2,圆环顺时针移动两位,此时原来c的位置被a替代,原来a的位置补y替代,形成新的闭环。对于给定的一段原文,请使用新的闭环字母表进行加密。如 I love c++! 加密后为 I jmtc a++!
for(int i=0;i<strlen(k);i++)
程序没啥问题,是你输入的格式不对,输入"2I love c++!"就可以了,你不输入数字s会默认为0