【发布时间】:2015-03-15 21:21:00
【问题描述】:
此代码运行 n 的值约为 100k,但当它达到一百万时它停止并崩溃。
#include <stdio.h>
int main()
{
int i;
long int n, sum;
n = 1000000;
int f[];
f[0] = 1;
f[1] = 2;
sum = 0;
for (i = 2; f[i-1] < n; i++)
{
f[i] = f[i-1] + f[i-2];
printf("%ld \n", f[i]);
if(f[i] % 2 == 0)
{
sum = sum + f[i];
}
}
printf("%d \n", sum);
getchar();
}
【问题讨论】:
-
int f[];?那不应该编译。 -
在标准模式下调用你的编译器。您需要为
f选择一个大小,例如int f[5000];并且您还应该在循环中添加一个检查,以便在i达到 5000 时优雅地退出。如果您不优雅地退出,那么您可能会遇到“停止和崩溃”或其他奇怪的行为。 -
格式化!…aaargh…
-
对不起!自从我用 C/C++ 编写任何代码以来已经有好几年了。当你说代码缺乏格式时,你能告诉我社区到底在寻找什么吗?
标签: c variables integer type-conversion