【发布时间】: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不是constexpr时int arr[n];不受标准C++ 支持。请改用std::vector<int> arr(n);。 -
术语:Compiler 要求用户输入 'n' -> Program 询问用户输入'n'。当你运行程序时,编译器早就完成了它的工作。
-
斐波那契数1000 = 43466557686937456435688527675040625802564660517371780402481729089536555417949051890403879840079255169295922593080322634775209689623239873322471161642996440906533187938298969649928516003704476137795166849228875我很好奇,你要去的地方来存储。 SPAN>
-
您的程序只接受小于 1 或大于 1000 的输入。您的意思是
if (n < 1 || n > 1000) { return 0; }?