C 为什么我的Euler项目代码有缺陷?

C 为什么我的Euler项目代码有缺陷?,c,C,我正在尝试euler项目问题2,以提高我的编程和解决问题的能力。然而,我被问题2困住了,我不确定我的代码到底出了什么问题。问题是: 斐波那契序列中的每个新项都是通过将前两项相加生成的。从1和2开始,前10个术语将是: 1、2、3、5、8、13、21、34、55、89 通过考虑Fibonacci序列中值不超过400万的项,求偶数值项之和 这是我试图解决的问题 #define MAX 4000000 int main() { int num1=1, num2=1, temp, sum;

我正在尝试euler项目问题2,以提高我的编程和解决问题的能力。然而,我被问题2困住了,我不确定我的代码到底出了什么问题。问题是:

斐波那契序列中的每个新项都是通过将前两项相加生成的。从1和2开始,前10个术语将是:

1、2、3、5、8、13、21、34、55、89

通过考虑Fibonacci序列中值不超过400万的项,求偶数值项之和

这是我试图解决的问题

#define MAX 4000000

int main()
{
    int num1=1, num2=1, temp, sum;

    while(num1<MAX || num2<MAX)
    {
        temp=num1+num2;
        num1=num2;
        num2=temp;
        if(temp%2==0)
            sum += temp;
    }
    printf("Sum= %d", sum);
}
#定义最大4000000
int main()
{
int num1=1,num2=1,温度,总和;
while(num1
  • 您没有初始化
    sum=0
  • 如果
    num1
    接近极限,
    sum
    必然更大
  • num1
    num2
    ,因此检查
    num1
    的大小有点毫无意义
  • 出于调试目的,在每次循环迭代期间打印
    num1
    num1
    sum

  • 请阅读以下内容:我在复制粘贴代码时忘记了包含宏。我很抱歉。也请阅读以下内容:这篇文章是关于C的,但其中几乎所有内容都适用于C。特别是关于整数算术的部分。你很幸运,你没有让独角兽在你的屏幕上跳跃。上次调用undefin时,我就遇到了这种情况ed Behavior.#1似乎是个问题。当我运行他的代码时,sum被初始化为32767