问题标题: 酷町堂:1786 密码战

0
0

0
已采纳
刘斐
刘斐
高级守护
高级守护
if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z')
        {
            if(s[i]>='D'&&s[i]<='Z'||s[i]>='d'&&s[i]<='z')
            {
                s[i]-=3;
            }
            else if(s[i]>='A'&&s[i]<='C'||s[i]>='a'&&s[i]<='c')
            {
                s[i]+=23;
            }
        }

主要代码

先输入字符串在进行判断(如上)

刘斐在2018-08-01 12:54:23追加了内容

输入字符串

再遍历这个字符串

判断:

如果是>='D'&&<='Z'||>='d'&&<='z',就让这个字符-3,

如果是>='A'&&<='C'||>='a'&&<='c',就让这个字符23

0
刘凯南
刘凯南
高级守护
高级守护
for(int i=0;i<s.size();i++)
        if(s[i]>='d'&&s[i]<='z')s[i]-=3;
        else if(s[i]>='D'&&s[i]<='Z')s[i]-=3;
        else if(s[i]=='a')s[i]='x';
        else if(s[i]=='b')s[i]='y';
        else if(s[i]=='c')s[i]='z';
        else if(s[i]=='A')s[i]='X';
        else if(s[i]=='B')s[i]='Y';
        else if(s[i]=='C')s[i]='Z';
0
杨陈卓
杨陈卓
新手天翼
新手天翼

思路:

读入一个字符串,然后循环遍历每个字符,如果这个字符的ASCII序号>=大写字母D&&<=大写字母Z||>=小写字母d&&<=小写字母z

这个字符的ASCII序号-3;如果这个字符的ASCII序号>=大写字母A&&<=大写字母C||>=小写字母a&&<=小写字母c这个字符的ASCII序号+23。最后输出字符串。

注:最好用string,输入用getline;

核心代码

    for(int i=0;i<s1.size();i++){
            if(s1[i]>='D'&&s1[i]<='Z'||s1[i]>='d'&&s1[i]<='z')
            s1[i]-=3;
            else if(s1[i]>='A'&&s1[i]<='C'||s1[i]>='a'&&s1[i]<='c')
            s1[i]+=23;
    }

 

0
叶子煊
叶子煊
中级光能
中级光能

一个主要部分:

    for(int i=0;i<=a.size()-1;i++)
    {
        if((a[i]>='D'&&a[i]<='Z')||(a[i]>='d'&&a[i]<='z'))
        {
            a[i]-=3;
        }
        else if((a[i]>='A'&&a[i]<='C')||(a[i]>='a'&&a[i]<='c'))
        {
            a[i]+=23;
        }
    }   

这题必须注意题目所给条件

输入输出样例

题目输入的是加密后的字符串

而输出的是加密前的字符串

要小心!

这题用字符串比较容易些

用个getline输入会更好些!!!

中间需要用if语句来判断条件

望采纳!!

希望对你有一定帮助!!!!

0
我要回答