看小甲鱼的C语言视频,第22将视频课后题不会,电文加密,求助、、、、
本帖最后由 DarkX 于 2012-6-21 22:59 编辑看小甲鱼的C语言视频,第22将视频课后题不会,电文加密,求助、、、、
程序要求:
用户输入原文或密文,将输入的字母转换到它后面的第四个字母,acsii码加四,如:A装换为E,B转换为F,a转换为e;
如果有W,X,Y,Z等,W转换为A,X转换为B,w转换为a,、、、以此类推,ascii码减22。。。
其他字符不做处理、、、、、、
我写到下面卡住了。。。。网上也没有答案,小甲鱼老师也没讲,来发帖求助下了,谢谢各位老大帮忙、、、、
主要是不知道该怎么去转换然后输出、、、求完善代码、、、、
********代码如下*************
#include <stdio.h>
void main()
{
char a;
s: printf("请选择要进行的操作(原文加密(y)/密文解密(n)):");
scanf("%c",a);
if(a=='y' || a=='Y')
{
printf("请输入原文,回车结束:\n");
while(1)
{
a=getchar();
if(a!='\n')
{
//这里进行原文到密文转换、、、、、
//到这里就不会了、、、、、55555555、、、、
}
else
{
break;
}
}
}
else if(a=='n' || a=='N')
{
//这里进行密文到原文转换
}
else
{
printf("格式错误,请重新输入!");
goto s;
}
}
还没看过 电文加密 好像你代码里面的C没有定义吧0.0 丿夏夜灬彬刂 发表于 2012-6-21 22:53 static/image/common/back.gif
还没看过 电文加密 好像你代码里面的C没有定义吧0.0
额、、、sorry、、、、打错了,,,那是那个字符变量a,,,,马上改。。。。不过重点不在这儿、、、 给个示例:char Encode( char c ) {
if( 'a'<=tolower(c) && tolower(c)<'w' ) return c+4;
else if( 'w'<=tolower(c) && tolower(c)<='z' ) return c-22;
else return c;
} #include <stdio.h>
int main(void)
{
char c;
c = getchar();
while (c != '\n')
{
if ((c >= 'a'&&c <= 'z') || c >= 'A' && c <= 'Z')
{
if ((c >= 'W'&&c <= 'Z') || c >= 'w'&&c <= 'z')
{
c = c - 22;
}
else
{
c = c + 4;
}
}
printf("%c", c);
c = getchar();
}
printf("\n");
}
只有加密功能,揭秘就是反着来就是了。
页:
[1]