我只有30天 发表于 2022-3-2 14:20:00

关于数组的问题

#include<stdio.h>
int main()
{
        int i,f;
        f=f=1;
        for(i=2;i<10;i++)
        f=f+f;
        for(i=0;i<10;i++)
        {
                if(i%4==0)
                printf("\n");
                printf("%d",f);
       }
}
为什么输出结果为 1123
                           581321
                           3455   

fishshen 发表于 2022-3-2 14:25:54

因为你的printf("%d",f);,并不在if语句内,你应该用{}把这个也扩进去

大马强 发表于 2022-3-2 15:37:44

斐波那契数列?
#include<stdio.h>
int main()
{
      int i,f;
      f=f=1;
      for(i=2;i<10;i++)
              f=f+f;
      for(i=0;i<10;i++)
      {
            if(i%4==0)
                printf("\n");
            printf("%d ",f); // 可以空一格,输出美观点
         }
}

我只有30天 发表于 2022-3-2 15:43:15

大马强 发表于 2022-3-2 15:37
斐波那契数列?

不知道、

番杰 发表于 2022-3-2 17:42:12

for(i=2;i<10;i++)
      f=f+f;
这段函数相当于给f这个数组赋值,赋值结果如下:
f = f + f = 1+1 = 2;
f = f + f = 2+1 = 3;
f = f + f = 3+2 = 5;
f = f + f = 5+3 = 8;
f = f + f = 8+5 = 13;
f = f + f = 13+8 = 21;
f = f + f = 21+13 = 34;
f = f + f = 34+21 = 55;

再看第二个for:
      for(i=0;i<10;i++)
      {
                if(i%4==0)
                  printf("\n");
                printf("%d",f);
         }
这段代码,意思就是依次打印f中的数据,每4个换行:
所以结合来看,输出的结果就是:
1、1、2、3(换行)
5、8、13、21(换行)
34、55

这就是为啥输出结果是你那样的,当然你输出的数据之间没有分隔符、,这个是我加的,方便观看。

我只有30天 发表于 2022-3-2 20:06:57

番杰 发表于 2022-3-2 17:42
这段函数相当于给f这个数组赋值,赋值结果如下:
f = f + f = 1+1 = 2;
f = f + f

哥我加你v吗

番杰 发表于 2022-3-3 10:31:23

我只有30天 发表于 2022-3-2 20:06
哥我加你v吗

如果我的回答有帮助到你,记得给一个最佳答案呦!{:10_297:}

qq1721977686 发表于 2022-3-3 14:30:11

。。。
页: [1]
查看完整版本: 关于数组的问题