『练习』输入n及一段密文(长度<200),输出解密得到的明文(Julius Caesar )

输入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]);
	} 
	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值