VIsǐοΝ__㊣ 发表于 2014-4-8 19:44:33

C语言关于用数组处理,求解fibonacci数列

#include<stdio.h>
void main()
{
        int i;
        int a={1,1};
        for(i=3;i<=20;i++)
        {
                a=a+a;
                printf("%d\n",a);
       
        }
}我的代码是这样的!
前19个都是正确的可是到最后一个结果却是6357070
没有这么大啊!

请问是哪里出了错误呢?

VIsǐοΝ__㊣ 发表于 2014-4-9 10:44:56

人工置顶啊!求大神帮忙!

紫月冰蓝 发表于 2014-4-9 15:32:20

#include<stdio.h>
void main()
{
      int i;
      int a={1,1};
      for(i=3;i<=20;i++)//这里应该是for(i=2;i<20;i++) 吧
      {
                a=a+a;
                printf("%d\n",a);
      
      }

VIsǐοΝ__㊣ 发表于 2014-4-9 16:37:13

紫月冰蓝 发表于 2014-4-9 15:32 static/image/common/back.gif
#include
void main()
{


如果变成i=2 这样的话 只能从2 开始,丢掉了两个1

紫月冰蓝 发表于 2014-4-9 16:52:50

本帖最后由 紫月冰蓝 于 2014-4-9 16:55 编辑

VIsǐοΝ__㊣ 发表于 2014-4-9 16:37 static/image/common/back.gif
如果变成i=2 这样的话 只能从2 开始,丢掉了两个1
前两个不是以经赋初值了么?   int a={1,1};这里, 不是以经赋初值a=1 a=1了么..不是正好从i=2a开始统计么?

i=3    ---printf("%d\n",a);本身a a a 就以经丢掉了. 要想不丢掉.应该换成printf("%s\n", a ) 吧

VIsǐοΝ__㊣ 发表于 2014-4-9 16:59:37

紫月冰蓝 发表于 2014-4-9 16:52 static/image/common/back.gif
前两个不是以经赋初值了么?   int a={1,1};这里, 不是以经赋初值a=1 a=1了么..不是正好从i=2 ...

我明白问题出在哪里了 谢谢!
页: [1]
查看完整版本: C语言关于用数组处理,求解fibonacci数列