帮我设计C语言程序

来源:百度知道 编辑:UC知道 时间:2024/06/18 00:06:06
3、 文件移位加密与解密。
总体设计:从键盘输入一个字符串(仅限于小写英文字母),根据密钥(用户从键盘输入,可在1-6范围内)将对应字符进行移位操作即可加密,解密时移动相反。
如加密:设原文为abcdef,密钥为5,则有abcdef每个字母按字母表向后移动5位(注:z后接a)可得到密文(乱码)fghijkl。
如解密:文件内容为fghijk1,密钥为5,则有fghijk1每个字母向前移动5位(注a后接z),可得到原文abcdef。
调试分析过程描述:
如输入的字符串为“hijklmnopq”
输入1 ←则加密:
即会显示“mnopqrstuv”
若输入2 ←则解密:
即会显示“cdefghijkl”
提示:目标字符串输入后可以存放在一个字符串数组中,再用循环按顺序访问每一个字符,用相应的算法进行加密或解密。

#include<stdio.h>
#define s 7 //s汇定义为7
void main()
{
char b[s];
int a[s],i,x,w=0; //定义变量
for(i=0;i<s;i++)
scanf("%c",&a[i]); //先输入原始数据
printf("输入1 加密, 输入2 解密");
scanf("%d",&x); //输入选项
if(x==1) //如果为1
{
for(i=0;i<s;i++)
{
b[w]=a[i]+5; //新数组里存放加密后的数据,原始数据加5
w++;
}
for(w=0;w<s;w++)
printf("%c",b[w]); //输出加密数据
printf("\n");gd
}
if(x==2) //如果输入为2
{
for(i=0;i<s;i++)
{
b[w]=a[i]-5; //原始数据减5,存入新数组
w++;
}
for(w=0;w<s;w++)
printf("%c",b[w]); //输出解密数组
}

}