爆零求助。。。

P1914 小书童——凯撒密码

1998ikun0802 @ 2022-07-31 18:20:19

在输入时只能输第一个n,后面的字符串都输不进去就会直接出结果,输出什么都没有。。。

#include<iostream>
using namespace std;
char ch[55];
int main()
{
    int len=1,n,i;
    scanf("%d",&n);
    while((ch[len]=getchar())!='\n') len++;
    len--;
    for(i=1;i<=len;i++)
    {
        ch[i]=ch[i]+n;
        if(ch[i]>'z')
            cout<<ch[i]-26;
        else cout<<ch[i];
    }
    return 0;
}

谢谢帮助!!!


by JustinXiaoJunyang @ 2022-07-31 18:24:08

@1998ikun0802

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s;
    int n;
    cin >> n;
    cin >> s;
    for (int i = 0; i < s.size(); i++)
    {
        for (int j = 1; j <= n; j++)
        {
            if (s[i] >= 'z')
            {
                s[i] = 'a';
            }
            else
            {
                s[i]++;
            }
        }
    }
    cout << s << endl;
    return 0;
}

求关注~


by tombs @ 2022-07-31 18:24:21

scanf("%d",&n);

改成

scanf("%d\n",&n);

by JustinXiaoJunyang @ 2022-07-31 18:24:56

@1998ikun0802 可能是没读进去


by tombs @ 2022-07-31 18:28:10

@1998ikun0802 你第一行末尾的换行符没有读入,就会导致第二行无法读入


by JustinXiaoJunyang @ 2022-07-31 18:33:24

把换行符吃掉了。。。


by 1998ikun0802 @ 2022-07-31 18:57:21

@JustinXiaoJunyang 改完之后就是5个RE。。。


|