有一行电文,已按下面规律译成密码:

有一行电文,已按下面规律译成密码:A->Za->zB->Yb->yC->Xc->x…即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变,... 有一行电文,已按下面规律译成密码:A->Z a->z B->Y b->y C->X c->x … 即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变,要求编程序将密码译回原文,并打印出密码和原文。(用C语言编写) 展开
 我来答
adoqq_bd
2011-12-27 · TA获得超过7050个赞
知道大有可为答主
回答量:1818
采纳率:63%
帮助的人:1613万
展开全部
//这个加密算法也就是解密算法,也就是再把密文加密一次就是原文了

#include <stdio.h>
char enc(char ch)
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
if(ch>='a')
{
ch+=('a'+13-ch)*2-1;
}
else
{
ch+=('A'+13-ch)*2-1;
}
}
return ch;
}

int main()
{
char s[20]="123abcmz8ABMZN";
int i=0;
while(*(s+i))
{
s[i]=enc(s[i]);
i++;
}
printf("加密后:%s\n",s);
i=0;
while(*(s+i))
{
s[i]=enc(s[i]);
i++;
}
printf("原 文:%s\n",s);
return 0;
}
zzzw456
2012-01-03
知道答主
回答量:11
采纳率:50%
帮助的人:7622
展开全部
#include<stdio.h>
int main()
{
int i;
char a[100],b[100];
gets (a);
for(i=0;a[i]!='\0';i++)
{if (a[i]>=65&&a[i]<=90) b[i]=155-a[i];
else if (a[i]>=97&&a[i]<=122) b[i]=219-a[i];
else b[i]=a[i];}
printf("密码:%s\n原文:%s\n ",a,b);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忘至白葬不情必0T
推荐于2017-09-10 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
#include "stdio.h"

void main()
{
char pw[81],src[81];
gets(pw);
puts(pw);
for(int i=0;pw[i];i++)
{
if(pw[i]>='A' && pw[i]<='Z')
src[i]='A'+'Z'-pw[i];
else if(pw[i]>='a' && pw[i]<='z')
src[i]='a'+'z'-pw[i];
else
src[i]=pw[i];
}
src[i]='\0';
puts(src);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiwending2008
2011-12-27 · TA获得超过102个赞
知道答主
回答量:115
采纳率:0%
帮助的人:142万
展开全部
#include "stdio.h"

#define DECRYPT_UPPER(x) (x+((26-(x-'A'+ 1)+1)-(x-'A'+1)))
#define DECRYPT_LOWER(x) (x+((26-(x-'a'+ 1)+1)-(x-'a'+1)))

int main()
{
char i = 0;
char str[] = "123abcmz8ABMZN";

while(str[i])
{
if(str[i] >= 'a' && str[i] <= 'z')
printf("%c",DECRYPT_LOWER(str[i]));
else if(str[i] >= 'A' && str[i] <= 'Z')
printf("%c",DECRYPT_UPPER(str[i]));
else
printf("%c",str[i]);
i++;
}

printf("\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淦海瑶s1
2011-12-27 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:756万
展开全部
if(a[i]>='a'&&a[i]<='z'||(a[i]>='A'&&a[i]<='Z')
a[i]='z'-a[i]+26+'a'+1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式