c语言:电文破译 - 爱问答

(爱问答)

c语言:电文破译

有一行电文,已按下面规律译成密文: A->Z a->z B->Y b->y C->X c->x …… 即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求编写程序将密文译回原文并输出。请使用数组实现。

输入

输入一行字符串密文,长度不超过80。

下面是我的代码:

#include <stdio.h>

#include <string.h>

int main()

{

char str[81];

char c,string;

int i;

gets (str);

for(i=0;(c=str[i])!='';i++)

{

if(c=='a' || c=='A') c=c+25;

   else if((c>'a' && c<'z')|| (c>'A' && c<'Z'))c=26-i+1;

       else c;

printf("%c",c); 

}

return 0;

}

只能得36分。我不知道该如何输出,求大神指点。

你的理解错题目的意思了

它的第i个字母意思是字母表顺序的第i个,不是输入顺序

你的这个大/小写要分别处理的

另外,程序中的

 else c;

没有意义,改好的程序参考

#include <stdio.h>
#include <string.h>
int main()
{
char str[81];
char c,string;
int i;
gets (str);
for(i=0; (c=str[i])!=''; i++)
 {
  if(c>='a' && c<='z')
   c='z'+'a'-c;
  else if (c>='A' && c<='Z')
   c='Z'+'A'-c;
  printf("%c",c);
 }
printf(" ");
return 0;
}

例样输入

abceABCDEzyxwvZYXWV

例样输出

zyxvZYXWVabcdeABCDE

相关标签:c语言

下一篇:3D开奖号码一个到三个数字组成,表格中如何显示剩余未开出的号码?

上一篇:VC++在使用strcpy函数给字符数组赋值时,输出结果有字符消失和其他字符出现

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?