gpt4 book ai didi

c - 为什么这个函数永远不会返回?是段错误吗?

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:36 25 4
gpt4 key购买 nike

int position_of_largest(int * array, int size)
{
int largest, i, largest_i;
i = 0;
largest_i = 0;
while (i < size)
{
if (i == 0)
{
largest = array[0];
largest_i = 0;
}
else
{
if (largest < array[i])
{
largest_i = i;
largest = array[i];
}
i++;
}
}

return largest_i;
}

这段代码应该找到数组中最高元素的索引并返回它。显然,这段代码中存在段错误,但我不知道它是什么!我已经多次查看代码,但没有发现任何问题。我是 C 的新手,顺便说一句(这解释了很多)。谢谢。

最佳答案

它不会导致段错误,但这段代码会进入无限循环。这是因为您将 i++ 放在了 else block 中。它永远不会增加。

将它放在 else block 之外。

else { 
if (largest < array[i]) {
largest_i = i;
largest = array[i];
}
}
i++;

关于c - 为什么这个函数永远不会返回?是段错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27990719/

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