gpt4 book ai didi

c - 测试用例中的段错误

转载 作者:行者123 更新时间:2023-11-30 15:12:33 26 4
gpt4 key购买 nike

所以,问题如下:给定任何整数数组(相当大),返回数组中任意两个元素之间的最大差异,使得较大元素出现在比较较小元素更高的索引处。如果没有找到这样的对,则返回 -1。示例:

723102481

其中第一个元素是数组的大小(或输入的行数),其余的是元素。上述示例输出为 8(10-2)。

我的代码如下:

int A[20],size;

scanf("%d",&size);
for(int i=0;i<size;i++){
scanf("%d\n",&A[i]);
}
int diff = A[1]-A[0];
int currsum = diff;
int maxsum = currsum;

for(int i=1; i<size-1; i++)
{
// Calculate current difference for the loop
diff = A[i+1]-A[i];

// Calculate current sum for the loop
if (currsum > 0)
currsum += diff;
else
currsum = diff;

// Update max sum(if needed)
if (currsum > maxsum)
maxsum = currsum;
}

printf("%d",maxsum);

这是来自 Hackerrank 的问题,但它仅适用于 10 个可能的测试用例中的 3 个。其余情况返回段错误。任何想法都会有帮助。

最佳答案

正如评论中提到的,您已声明 A 仅保存 20 个整数。但问题最多可以发送 1,000,000 个整数。这就是错误!

关于c - 测试用例中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35010671/

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