问题标题: 酷町堂:1091

0
0
已解决
王俊杰
王俊杰
高级光能
高级光能

1091   战时密码本经验值:0

题目描述 Description

国家博物馆有一本战时密码本,其中记录了一些关键信息,通过博物馆管理员介绍,加密过程如下:
1.所有字符逆向存储(如:ABCD——>DCBA);
2.所有字符在字母表中被循环右移两个单位(如:ABCD——>CDEF);
3.所有字符大小写替换(ABCD——abcd)。
小明翻阅了那本战时密码本,记住了一串字符,请你根据加密规则,找出其原字符串。

输入描述 Input Description

输入为一行,为战时密码本的一行字符串(全为字母,且长度不超过100)。

输出描述 Output Description

输出为一行,为战时密码本对应的原字符串。

样例输入 Sample Input

AbcD

样例输出 Sample Output

bAZy

错误代码样例没过:

#include <iostream>
#include <string>
using namespace std;
int main(){
    string s;
    getline(cin,s);
    for(int i=0;i<s.size();i++){
        if(s[i]>='a'&&s[i]<='z')
            s[i]-=32; 
        else if(s[i]>='A'&&s[i]<='Z')
            s[i]+=32;
    }
    for(int i=0;i<=s.size()-1;i++){
        if(s[i]>='C'&&s[i]<='Z'||s[i]>='c'&&s[i]<='z')
            s[i]-=2; 
        if(s[i]=='A'||s[i]=='a')
            s[i]+='y'-'a';
        if(s[i]=='B'||s[i]=='b')
            s[i]+='z'-'b';
    }
    for(int i=s.size()-1;i>=0;i--){
            cout<<s[i];    
       }
    cout<<s;
    return 0;
}

请大佬找错


0
已采纳
朱瑾文
朱瑾文
新手光能
新手光能

第24行需要删掉。

朱瑾文在2020-07-10 11:27:04追加了内容

写错了应该是第14行。

朱瑾文在2020-07-10 11:29:02追加了内容

写错了,写错了。

我要回答