我有这样的代码,它在数组中找到最长的不递减序列,并打印这个序列的长度:
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
发布于 2015-11-23 23:01:02
如前所述,原因是您的main声明。
main的返回值表示程序的退出代码。正确的声明是
int main()或
int main(int argc, char** argv)声明就像
void main()是错误的,但被C忽略了(C++中禁止这样的声明)。在这种情况下,返回的值未指定。
你可以在那里读到更多:
这个问题看起来很像你的:
此外,我还对Ideone进行了一些测试,并且似乎在Ideone上有任何带有C程序的void main() get运行时错误。
https://stackoverflow.com/questions/33881717
复制相似问题