问题标题: 酷町堂:1786 密码战10分!!!

0
0
已解决
朱优扬
朱优扬
中级天翼
中级天翼
#include <bits/stdc++.h>
using namespace std;
int main(){
    string a;
    cin>>a;
    for(int i=1;i<=a.size();i++){
        if(((int)a[i-1]>=65&&(int)a[i-1]<=89)||((int)a[i-1]>=97&&(int)a[i-1]<=121)){
            cout<<(char)(a[i-1]-3);
        }
        else{
            cout<<a[i-1];
        }
    } 
    return 0;
}

0
已采纳
曹博扬
曹博扬
初级天翼
初级天翼

对不起

刚才看错了,是那道四分题

0
被禁言 何冯成
何冯成
中级光能
中级光能

你这个思路有问题

输入:getline

遍历从0开始,到a.size()-1

        if(((int)a[i-1]>=65&&(int)a[i-1]<=89)||((int)a[i-1]>=97&&(int)a[i-1]<=121)){
            cout<<(char)(a[i-1]-3);
        }

改成

   if(a[i]>='D'&&a[i]<='Z'||a[i]>='d'&&a[i]<='z')
            a[i]-=3;

else 的改为else if(.......) a[i]...

最后cout<<a;

0
0
0
我要回答