输入n及一段密文(长度<200),输出解密得到的明文
Julius Caesar 曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表中后n(n>0)位对应的字符来代替,这样就得到了密文。比如字符A用F来代替。
如下是n=5时密文和明文中字符的对应关系。
密文:ABCDEFGHIJKLMNOPQRSTUVWXYZ
明文:VWXYZABCDEFGHIJKLMNOPQRSTU
ps: 密文中出现的字母都是大写字母。密文中也包括非字母的字符和空格,对这些字符不用进行解码。
代码:(可运行!)
#include <stdio.h>
int main(){
int n,i,j;
printf("输入个数");
scanf("%d",&n);
if(n<=0||n>=200) printf("输入不合法!") ;
printf("输入偏差");
scanf("%d",&i);
if(i<=0||i>=26) printf("输入不合法!") ;
char *s[n];
for(j=0;j<n;j++){
char c;
printf("请输入第%d个",j+1);//因为是从0开始的所以就j+1
getchar();//过滤上一个回车
scanf("%c",&c);
if(c>='A'&&c<='Z')
if(c+i<'Z') s[j]=c+i;
else s[j]=c+i-26;
else s[j]=c;
}
for(j=0;j<i;j++){
printf("%c",s[j]);
}