laoque 发表于 2023-2-28 12:06:57

C语言斐波那契数列求第几个数

歌者文明清理员 发表于 2023-2-28 13:46:59

作者的问题是
    兄弟们,这个斐波那契数列怎么输不出结果,哪里错了吗
估计是个新手,把问题放在图片说明里了

dolly_yos2 发表于 2023-2-28 13:52:01

两个问题:
①输不出结果是什么意思,什么现象?
②这是 C 语言吗?

歌者文明清理员 发表于 2023-2-28 14:03:56

dolly_yos2 发表于 2023-2-28 13:52
两个问题:
①输不出结果是什么意思,什么现象?
②这是 C 语言吗?

同意

1. C 语言……iostream?
2. 如果这是 C++……scanf?
什么时候 C 和 C++ 合体了?

歌者文明清理员 发表于 2023-2-28 14:07:52

作者的源代码如下(我手敲的)
#include<stdio.h>
using namespace std;
void Fib(int n,int a[])
{
   int i=0;
   a=1;a=1;
    for(i=2;i<n;i++)
   a=a+a;
    cout<<a<<endl;
}
int main()
{
    int a;
    int n;
    scanf("%d",&n);
    Fib(n,a);
}

isdkz 发表于 2023-2-28 15:01:50

#include<iostream>
using namespace std;
void Fib(int n,int a[])
{
   int i=0;
   a=1;a=1;
    for(i=2;i<n;i++)
   a=a+a;
    cout<<a<<endl;                      // 这个应该是 i - 1,因为 i 是要等于 n 的时候才结束循环的,而在数组中第 n 个元素应该是 n - 1
}
int main()
{
    int a;
    int n;
    scanf("%d",&n);
    Fib(n,a);
}

歌者文明清理员 发表于 2023-2-28 15:11:17

isdkz 发表于 2023-2-28 15:01


isdkz 大神,他这没#include<stdio.h>哪来的 scanf?

isdkz 发表于 2023-2-28 15:22:02

歌者文明清理员 发表于 2023-2-28 15:11
isdkz 大神,他这没#include哪来的 scanf?

在 C++ 中引入 iostream 就可以了

jhq999 发表于 2023-2-28 15:39:19

本帖最后由 jhq999 于 2023-2-28 15:41 编辑

#include <bits/stdc++.h>
using namespace std;
void fib(int n)
{
    int a=1,b=1,i=0;
    for(i=2; i<n; i+=1)b+=a,a=b-a;
    cout<<b;

}
int main ()
{
    for(int i=1;i<10;i+=1)fib(i),cout<<" ";
    return 0;
}

ExiaGN001 发表于 2023-2-28 17:30:25

本帖最后由 ExiaGN001 于 2023-2-28 17:41 编辑

边界没调整好,多输出了一位。
#include<iostream>
using namespace std;
void Fib(int n,int a[])
{
      int i=0;
      a=1;a=1;
      for(i=2;i<n;i++)
      a=a+a;
      cout<<a<<endl;//这里是唯一一处变动,将i改成了i-1
}
int main()
{
      int a;
      int n;
      scanf("%d",&n);
      Fib(n,a);
      return 0;
}

已经测试过了,结果正常
有用->最佳,谢谢

992912868 发表于 2023-3-1 16:32:07

歌者文明清理员 发表于 2023-2-28 14:03
同意

1. C 语言……iostream?


C++其实也可以用scanf的
页: [1]
查看完整版本: C语言斐波那契数列求第几个数