输入和输出都是对的,但是全部WA...

P1914 小书童——凯撒密码

ranx @ 2021-11-19 16:13:18

输入输出跟测试点数据一致,但就是显示WA,萌新提问求大佬解答。

如图

只下载了测试点一的数据

代码如下

#include"iostream"
using namespace std;
int main()
{
    int n;
    char ch;
    cin>>n;
    scanf("\n");
    for(int i=1;i<=51;i++)
    {
        scanf("%c",&ch);
        if(ch=='\n')
        {
            break;
        }
        else
        {
            if(n>=26)
            {
                n=n-26*(n/26);
                ch=ch+n;
            }
            else
            {
                ch=ch+n;
            }
            if(ch>=123)
            {
                ch=ch-26;
            }
            else
            {
                ch;
            }
        }
        printf("%c",ch);
    }
    return 0;
}

求大佬解答谢谢了!


by 编码落寞 @ 2021-11-19 16:21:29

输入数据结尾不是换行,用洛谷IDE跑用例都过不了


by TzNzM @ 2022-01-05 10:00:23

#include<stdio.h>
#include<string.h>
int main(){
    int n;//字符移动位数
    int i=0,j;
    char ch,a[50];
    scanf("%d",&n);
    getchar();
    while ((ch=getchar())!='\n')
    {
        a[i]=ch;
        ++i;
    }
    --i;
    j=i;
    while (i>=0)
    {
        if (a[i]+n>'z')
        {
            a[i]=(a[i]+n-'z')%26+'a'-1;
        }
        else if (a[i]+n<='z'&&a[i]+n>='a')
        {
            a[i]=a[i]+n;
        }
        --i;
    }
    ++i;
    while (i<=j)
    {
        printf("%c",a[i]);
        ++i;
    }

    return 0;
}

我也不知道为啥,我的代码也是,自己测用例也能过,但就是全WA


|