gpt4 book ai didi

c++ - 在线裁判的输出不同

转载 作者:行者123 更新时间:2023-12-02 11:13:59 24 4
gpt4 key购买 nike

我在hackerrank(在线法官)中尝试过一个问题。任务是采用输入字符串,然后首先打印偶数索引的字符,后跟一个空格,然后打印给定编号的测试用例'n'的偶数索引中的字符。我能够解决。但是,我在编译器上得到了不同的输出,在线判断中得到了不同的输出。我在计算机上得到的输出是正确的,但在线判断器中没有得到相同的输出。这是我的代码:-

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <string.h>


using namespace std;


int main()
{
int n;
cin>>n;
getchar();
char s[1000];
for(int i=0;i<n;i++)
{
cin.getline(s,1000);
int len;
len=strlen(s);
for(int j=0;j<=len;j++)
{
if(j%2==0)
cout<<s[j];
}
cout<<" ";
for(int m=0;m<len;m++)
{
if(m%2!=0)
{
cout<<s[m];
}
}
cout<<endl;
}
return 0;
}
输入给定

1

Hacker


使用g++在计算机上运行时的输出

Hce akr


在线判断时输出

Hce


请帮忙。
注意: 0 被视为偶数索引。

最佳答案

for(int j=0;j<=len;j++)
{
if(j%2==0)
cout<<s[j];
}

您编写的是 <=而不是 <

在这里,当单词长度为偶数时(如“Hacker”一样),您也会意外地打印出终止NULL。

其结果取决于您的执行环境。显然,您的终端只会忽略它,而您所说的这个“在线判断器”却不会,而是将其用作程序输出的NULL终止符! (如果您问我,那是不好的编码)

N.B.您不会从编译器获得程序输出。您可以通过执行程序来获取它,而编译器无法控制该程序。

另外,为了对克苏鲁的热爱,请缩进您的代码并使用有意义的变量名?

关于c++ - 在线裁判的输出不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38379098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com