凯撒密码(还原明文)
程序员文章站
2022-07-14 23:51:20
...
一开始学循环的时候确实对于凯撒密码捉弄不透,今日回看到还挺简单。确实熟能生巧。
#include<stdio.h>
int main()
{
char ch;
int key;
printf("输入移位值: ");
scanf("%d",&key);
fflush(stdin);
printf("输入密文: ");
ch=getchar();
printf("明文为: ");
while(ch!='\n')
{
if(ch>='A'&&ch<='Z')
{
printf("%c",(ch-'A'-key+26)%26+'A');
}
else if(ch>='a'&&ch<='z')
{
printf("%c",(ch-'a'-key+26)%26+'a');
}
else if(ch>='0'&&ch<='9')
{
printf("%c",(ch-'0'-key+10)%10+'0');
}
else
{
printf("%c",ch);
}
ch=getchar();
}
printf("\n");
return 0;
}
(ch-‘A’-key+26)%26+‘A’
至于这种就是**的算法
结构简单,算法还挺难想。
while循环配合的getchar当gets使用