gpt4 book ai didi

c++ - C++ 中 15000 数组索引后的不相关整数标准输入

转载 作者:行者123 更新时间:2023-11-28 05:46:41 27 4
gpt4 key购买 nike

我正在尝试解决 c++ 中的一个问题,该问题需要从 stdin 读取整数输入并将其存储在数组中以供进一步处理。

输入测试用例包含 1 到 100000 之间的整数。测试用例大小大于 20,000, 但我发现输入超过 15000 index 后,输入返回不相关的重复数字,如下所示 -

94991 -(索引)1900194991 -(指数)1900294991 -(指数)1900394991 -(指数)1900494991 -(指数)1900594991 -(指数)1900694991 -(指数)1900794991 -(指数)1900894991 -(指数)1900994991 -(指数)1901094991 -(索引)19011

而原始测试用例包含相同的不同整数。

下面是输入部分的代码片段-

int n,k,i=0;
cin>>n;
//taking input size of array
int ar[n];

while(n--)
{
cin>>k;
ar[i]=k;

if(i>15000)
cout<<k<<" -(index) "<<i<<endl;


++i;
}

编辑1)即使在不使用数组的情况下使用 while 循环,问题仍然存在,如下面的代码片段所示,仅使用变量 k 解析输入;即使使用 vector 也会呈现错误的结果。

 cin>>n;
while(n--)
{

//cin.clear();
cin>>k;

if(i>19000)
cout<<k<<" - "<<i<<endl;

++i;
}

上述输入文件的链接是 http://bit.ly/1PgAjB3 ,你们中的任何一个都可以用它来测试 ideone。

2) 该程序适用于 5000 左右的测试用例

** 上面代码片段的全部代码是 ** http://ideone.com/WOYkEl

你可以看到代码在测试用例为 5733 时有效

最佳答案

替换

int ar[n];

int * ar = new int[n];

在编译时你不知道n,所以这需要动态分配。

关于c++ - C++ 中 15000 数组索引后的不相关整数标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36083048/

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