遇到了算是自己学编程以来的耗时最长的一个题目,包括到现在都没弄清楚自己错在那,希望有知道我错在哪的可以指导一下,谢谢。
题目如下:
将26个英文字母按顺时针方向排成一个圆环。密钥是一个整数。
具体加密方法如下:
- 若密钥 key≥0,则从明文字母开始按顺时针方向走 ∣key∣ 步得到密文字母;
- 若密钥 key<0,则从明文字母开始按逆时针方向走 ∣key∣ 步得到密文字母。
-
输入格式
密文(小写字母) 密钥(任意整数)
输出格式
明文(小写字母)
输入样例1
f 5
输出样例1
a
输入样例2
y -3
输出样例2
b
请编写程序输入明文和密钥,输出密文。
代码如下:
#include<stdio.h>
int main()
{
char a;
int m,n;
scanf("%c %d",&a,&m);
n=a-m;
do{
if(n<97){
n=n+26;
}else if(n>122){
n=n-26;
}else{
n=n;
}
}while(n<97||n>122);
printf("%c\n",n);
return 0;
}