问题标题: 酷町堂:2789 加强版字符游戏

0
1
已解决
郑怡翔
郑怡翔
初级天翼
初级天翼

2789   加强版字符游戏

题目链接:点这里

30分侥幸代码(样例都没对):

#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main()
{   
    string a;
    getline(cin,a);
    for(int i=0;i<=a.size();i++)
    {
        if(a[i]=='A')
            a[i]='Z';
        else if(a[i]=='a')
            a[i]='z';
        else if(a[i]>'A'&&a[i]<='Z')
            a[i]-=1;
        else if(a[i]>'a'&&a[i]<='z')
            a[i]-=1;
    }
    int l=a.size();
    if(l%2==0)
    {
        for(int i=l;i>=0;i--)
        {
            cout<<a[i];
        }
    }
    else    cout<<a;
    return 0;
}

知道样例错了,但不会改

求教

 


1
已采纳
陶旭杰
陶旭杰
中级光能
中级光能

这题的样例有点怪,我样例没对,但是也AC了。

你的代码只有很小的一个问题,改完就AC了。

for(int i=l;i>=0;i--)
{
    cout<<a[i];
}
    

你的逆序输出是有点问题的。l是字符串的长度,而字符串最后一位的下标应该是l-1。所以逆序输出的那个循环应该改为:

for(int i=l-1;i>=0;i--)
{
    cout<<a[i];
}
    

祝你AC快乐!!!

0
0
0
赵逸凡
赵逸凡
初级启示者
初级启示者
for(int i=0;i<=n-1;i++)
    {
        char a[1100];
        int l=0;
        gets(a);
        l=strlen(a);
        for(int i=0;i<l;i++)
        {
            int he=0;
            he=a[i];
            if((he>=65&&he<=89)||(he>=97&&he<=121)) he+=1;
            else if(he==90||he==122) he-=25;
            cout<<(char)he;
        }
        cout<<endl;
    }

输入和定义自己想,please。

皮一下,其实这是1151的部分代码,但是思路很接近,其实是变形了。

其他思路同沙发楼上1楼

0
赵逸凡
赵逸凡
初级启示者
初级启示者

其实最令我好奇的是,你发两遍同样的问题竟然这一遍的代码框背景是白色的,就是我们问问题或回答问题时输入框的颜色还有字体的字号标准明明就是输入框的形式,怎么弄的???

@蒋智航 @蒋智航 @蒋智航 @陆麟瑞 @酷町喵~o( =∩ω∩= )o~ 

 

 

 

 

 

赵逸凡在2018-10-19 22:34:50追加了内容

e

0
翟谦瑞
翟谦瑞
新手守护
新手守护

把l改成l-1。

刚刚我也是做这道题,也被“推”到了粪坑里。

我要回答