首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >递归运行时错误

递归运行时错误
EN

Stack Overflow用户
提问于 2015-11-23 22:13:30
回答 1查看 387关注 0票数 0

我有这样的代码,它在数组中找到最长的不递减序列,并打印这个序列的长度:

代码语言:javascript
复制
int max = 0;

void sequence(int *array, int start, int end, int last, int count)
{
   int i;
   if (start >= end)
   {
       if (count > max) max = count;
   }
   else
       for (i = start; i < end; i++)
       {
            if (array[i] >= last)
                sequence(array, i + 1, end, array[i], count + 1);
            else 
                if (i == end - 1 && array[i] < last)
                    sequence(array, i + 1, end, 0, count);
        }
}

void main()
{
    int x[] = { 1, 2 };
    sequence(x, 0, 2, 0, 0);
    printf("%d", max);
}

在我的Visual中一切正常,但是Ideone打印运行时错误时间:0内存: 2160信号:-1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-23 23:01:02

如前所述,原因是您的main声明。

main的返回值表示程序的退出代码。正确的声明是

代码语言:javascript
复制
int main()

代码语言:javascript
复制
int main(int argc, char** argv)

声明就像

代码语言:javascript
复制
void main()

是错误的,但被C忽略了(C++中禁止这样的声明)。在这种情况下,返回的值未指定。

你可以在那里读到更多:

C和C++的主要回报应该是什么?

关于Quora的讨论

这个问题看起来很像你的:

在StackOverflow上讨论的类似问题

此外,我还对Ideone进行了一些测试,并且似乎在Ideone上有任何带有C程序的void main() get运行时错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33881717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档