需要帮助清理Fibonacci序列使用C++ 我仍然对C++很陌生,并决定制作斐波那契序列。成功了,呜!但是它没有我想要的那么好
我的意思是说,例如,我告诉我的程序计算我将得到的序列的前10项 0,1,1,然后我必须为每个额外的数字按enter键,直到它达到10,在这种情况下,程序返回0并结束 我如何让程序显示我想要的所有数字,而不为每一个额外的数字按enter键 这是我的剧本:需要帮助清理Fibonacci序列使用C++ 我仍然对C++很陌生,并决定制作斐波那契序列。成功了,呜!但是它没有我想要的那么好,c++,fibonacci,C++,Fibonacci,我的意思是说,例如,我告诉我的程序计算我将得到的序列的前10项 0,1,1,然后我必须为每个额外的数字按enter键,直到它达到10,在这种情况下,程序返回0并结束 我如何让程序显示我想要的所有数字,而不为每一个额外的数字按enter键 这是我的剧本: #include <iostream> using namespace std; int main() { int FibNum; cout << "How many numbers of the Fib
#include <iostream>
using namespace std;
int main()
{
int FibNum;
cout << "How many numbers of the Fibonacci Sequence would you like to see? \n\n";
cin>> FibNum;
cin.ignore();
int a = 0;
int b = 1;
int c = 2;
cout << "Fibonacci Sequence up to " << FibNum << " terms.\n\n";
cout << a << "\n" << b << "\n";
for (int c = 2; c < FibNum; c++) {
int d = a + b;
cout << d;
cin.ignore();
a = b;
b = d;
}
}
提前感谢您的帮助
另外,如果您注意到我正在做的任何糟糕的事情,请随时纠正我,我很清楚我可能做错了很多,我只是在努力学习。:] 有几件事:
1移除int c=2;当您在for循环中定义c时
2删除行cin。忽略;:在for循环中:这将解决enter问题;该行等待一些输入,然后忽略它
3在输出中留出一些空白:例如,cout移动cin。忽略循环外,则无需输入即可打印除先前答案外的所有10个斐波那契数列 要更好地格式化输出,请通过更改此选项添加空白
cout << d;
到
您可能需要将a、b和d的类型从int更改为double以防止溢出
如果在代码中使用FibNum=100,您应该能够观察到溢出,这意味着您将在序列末尾得到一些不正确的数字
移动c.忽略;循环外:如果您输入字符,它将等待输入字符,例如123456,它将让循环运行7次,每个数字一次,换行一次。@DietmarKühl,谢谢,这确实有效,但是,它会导致同样严重的问题,现在所有数字显示为12358132134,而不是1 2 3 5等。。是否对此进行了适当的修复,或者是否应尝试将\n添加到循环中?编辑:我刚刚决定添加一个“\n”,当然你可以自己解决这个问题。只需在每个数字后面添加一个换行“\n”:std::cout@DietmarKühl好吧,我只是这么做了,我只是想看看是否有更有效的方法,但我想添加一个\n是非常有效的,哈哈。再次感谢:][1推荐数据更改,并鼓励我讨论新的C++11数据类型。还要注意,double在整数运算中精确到非常大的数值。@Bathsheba我对C++11不太了解,但会去做一些研究;谢谢你的信息!
cout << d << " ";