欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

凯撒密码(还原明文)

程序员文章站 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使用