一、题目
请模拟有限字符的加密和解密过程:
1)请输入一组密码(4位数)
2)请输入待加密的文本,这里只需要输入4个字符,如“girl”
3)加密的规则是将对应数位加到字符上,变成新的字符如输入1524四位数密码,则最终输出"hntp"
4)解密,就是在原来字符的基础上减去对应数字,再输出。
二、解题
(1)解题思路
输入的文本转化成ASCII码存储在变量中,设置的密码存储在变量中,将前面两个数字相加得到新数字并以字符形式输出作为加密文本,最后输入密码并判断密码正确性然后执行解密。
(2)运行界面截图
(3)
代码:
#include <stdio.h>
int main()
{
int a,b,c,d,aa,bb,cc,dd;//定义存储文本字符ASCII码值和设置的密码的变量
printf("请输入要加密的文本(如girl):");
scanf("%c%c%c%c",&a,&b,&c,&d);//输入的字符分别转换成ASCII码存放在a,b,c,d
printf("请设置一串数字密码来加密该文本(如1234):");
scanf("%d%d%d%d",&aa,&bb,&cc,&dd);//输入的数字密码存放在aa,bb,cc,dd
int aaa,bbb,ccc,ddd;//定义存储密码的变量
printf("操作成功,加密后文本为:");
printf("%c%c%c%c\n",a+aa,b+bb,c+cc,d+dd);//文本字符ASCII码加上设置的密码后输出相应字符
printf("请输入密码获取文本内容:");
scanf("%d%d%d%d",&aaa,&bbb,&ccc,&ddd);
if((aaa==aa)&&(bbb==bb)&&(ccc=cc)&&(ddd=dd))//判断输入的密码和设置的密码是否一致,有错即错
{
printf("密码正确,文本内容为:%c%c%c%c",a,b,c,d);//第二种就是将地址表列改为原来字符减去密码(如a-aa)
}
else
{
printf("密码错误!");//if条件不成立则实行else
}
}