是不是哪里格式错了?

P1914 小书童——凯撒密码

MascotM @ 2019-10-21 13:39:36

希望有人能帮忙解答一下,这段代码我下载测试数据来本地测试的时候对了,然而上传上去的时候还是WA...

#include <stdio.h>
int main(void)
{
    char a[51];
    int n,i=0,m;
    scanf("%d",&n);
    getchar();
    while ((a[i++]=getchar())!='\n');
    i--;
    for (m=0;m<i;m++)
    {
        a[m]+=n;
        if (a[m]>'z') a[m]-=26;
        printf("%c",a[m]);
    }
    return 0;
}

by ud2_ @ 2019-10-21 13:46:40

+#include <ctype.h>
 #include <stdio.h>
 int main(void)
 {
-    char a[51];
+    unsigned char a[51];
     int n,i=0,m;
-    scanf("%d",&n);
-    getchar();
-    while ((a[i++]=getchar())!='\n');
+    scanf("%d ",&n);
+    while (isalpha(a[i++]=getchar()));
     i--;
     for (m=0;m<i;m++)

by MascotM @ 2019-10-21 13:56:21

@sjx233 为什么会有这样的差别 在本地运行的时候为什么是对的0.0


by xukuan @ 2019-10-21 14:07:26

@MascotM 洛谷字符串题目下载数据需用独门蹩脚方法破解


by xukuan @ 2019-10-21 14:07:41

这个确实不大友好


by MascotM @ 2019-10-21 14:09:26

@xukuan (挠头) 大概能理解 所以这算是落谷的一个小小的bug? 这居然有人ac了也挺厉害的吧orz


by MascotM @ 2019-10-21 14:10:31

@xukuan 能帮我看看为什么上面的大犇帮我改的代码里面的scanf("%d ",&n)中加了空格吗?


by xukuan @ 2019-10-21 14:13:43

@MascotM

while ((a[i++]=getchar())!='\n');

和getline最好别用,因为总有XX要在Windows系统下造数据然后传到洛谷上


by MascotM @ 2019-10-21 14:19:22

@xukuan 好的 谢谢


by 跌宕飞行 @ 2019-10-21 22:23:18

@MascotM 缓冲,相当于getchar();


|