【问题标题】:Why is this program not producing any output (std::cout, fibonacci series)?为什么这个程序不产生任何输出(std::cout,斐波那契数列)?
【发布时间】:2021-09-27 16:43:41
【问题描述】:
#include<iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    int arr[n];
    arr[0]=1;
    arr[1]=1;
    if(1<=n&&n<=1000)
    {
        return 0;
    }
    for(int i=2;i<n;i++)
    {
        arr[i]=arr[i-1]+arr[i-2];
    }
    for(int i=0;i<n;i++)
    {
        cout<<arr[i];
    }
    cout<<arr[n-1];
    return 0;
}

程序要求用户输入“n”,然后程序结束,没有任何输出。

输出:

6


...Program finished with exit code 0 Press ENTER to exit console.

【问题讨论】:

  • 可变长度数组 (int arr[n]) 不是标准 C++ stackoverflow.com/questions/7812566/…
  • 请注意,当n 不是constexprint arr[n]; 不受标准C++ 支持。请改用std::vector&lt;int&gt; arr(n);
  • 术语:Compiler 要求用户输入 'n' -> Program 询问用户输入'n'。当你运行程序时,编译器早就完成了它的工作。
  • 斐波那契数1000 = 43466557686937456435688527675040625802564660517371780402481729089536555417949051890403879840079255169295922593080322634775209689623239873322471161642996440906533187938298969649928516003704476137795166849228875我很好奇,你要去的地方来存储。 SPAN>
  • 您的程序只接受小于 1 或大于 1000 的输入。您的意思是 if (n &lt; 1 || n &gt; 1000) { return 0; }

标签: c++ fibonacci


【解决方案1】:

从这里退出:

    if(1<=n&&n<=1000)
    {
        return 0;
    }

因为6 大于0 且小于1000

【讨论】:

  • 或者用 OP:s 表示法:1 &lt;= 6 &amp;&amp; 6 &lt;= 1000(1 小于或等于 6)和(6 小于或等于 1000)。
猜你喜欢
  • 2012-12-29
  • 1970-01-01
  • 2010-12-20
  • 1970-01-01
  • 2017-05-15
  • 2011-12-18
  • 2015-04-25
  • 2019-03-23
  • 2011-09-30
相关资源
最近更新 更多