目录
【C语言】有一行电文,已按下面规律译成密文:A->Z a->z即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求编写程序将密文译回原文并输出。请使用数组实现。
1问题描述:
【C语言】有一行电文,已按下面规律译成密文:A->Z a->z即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求编写程序将密文译回原文并输出。请使用数组实现。
试题描述:
输入一行字符串密文,长度不超过80。输出破译后的原文。
输入示例:
R droo erhrg Xsrmz mvcg dvvp.
输出示例:
I will visit China next week.
数据范围:
输入输出均为字符串,并且输入字符串长度不超过80
2代码:
#include<stdio.h>
#include<string.h>
int main()
{
char c[100];
int i=0,j,x;
printf("请输入一行电文\n");
while((c[i]=getchar())!='\n')
i++;
printf("%s",c);
x=strlen(c);
for(i=0;i<x;i++)
{
if(c[i]>='A'&&c[i]<='Z')
{
c[i]=90-(c[i]-65);
}
else if(c[i]>='a'&&c[i]<='z')
{
c[i]=122-(c[i]-97);
}
}
printf("%s",c);
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
char c[100];
int i=0,j,x;
printf("请输入一行电文\n");
while((c[i]=getchar())!='\n')
i++;
printf("%s",c);
x=strlen(c);
for(i=0;i<x;i++)
{
if(c[i]>='A'&&c[i]<='Z')
{
c[i]=90-(c[i]-65);
}
else if(c[i]>='a'&&c[i]<='z')
{
c[i]=122-(c[i]-97);
}
}
printf("%s",c);
return 0;
}
3运行结果:
4程序分析:
首先,定义一个字符串,对字符串进行输入:
#include<stdio.h>
#include<string.h>
int main()
{
char c[100];
int i=0,j,x;
printf("请输入一行电文\n");
while((c[i]=getchar())!='\n')
i++;
printf("%s",c);
然后,进入循环,对每个字符进行变换,找到其规律即可
#include<stdio.h>
#include<string.h>
int main()
{
char c[100];
int i=0,j,x;
printf("请输入一行电文\n");
while((c[i]=getchar())!='\n')
i++;
printf("%s",c);
x=strlen(c);
for(i=0;i<x;i++)
{
if(c[i]>='A'&&c[i]<='Z')
{
c[i]=90-(c[i]-65);
}
else if(c[i]>='a'&&c[i]<='z')
{
c[i]=122-(c[i]-97);
}
}
printf("%s",c);
return 0;
}
5总结:
感谢各位的阅读,以上就是“C语言怎么译密码”的内容了,经过本文的学习后,相信大家对C语言这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是CSDN杰克尼,小编将为大家推送更多相关知识点的文章,欢迎关注!