【发布时间】:2013-10-02 20:31:19
【问题描述】:
我对 C++ 还是很陌生,并决定制作一个斐波那契数列。它有效(哇!),但效果不如我所愿。
我的意思是说,例如我告诉我的程序计算我将得到的序列的前 10 个项
"0, 1, 1" 然后我必须为每个额外的数字按 Enter 键,直到它达到 10,在这种情况下程序返回 0 并结束。
如何让程序显示我想要显示的所有数字,而无需为每个额外的数字按 Enter 键?
这是我的脚本:
#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;
}
}
提前感谢您的帮助!
附:另外,如果您发现我做的任何糟糕的事情,请随时纠正我,我很清楚我可能做错了很多,我只是在努力学习。 :]
【问题讨论】:
-
将
c.ignore();移出循环:它一直等到输入一个字符(如果您输入,例如123456,它将让循环运行7次,每个数字一次,一次换行符)。 -
@DietmarKühl,谢谢,这确实有效,但是,它会导致同样严重的问题,现在所有数字都显示为“12358132134”而不是 1 2 3 5 等。是否有任何适当的解决方法为此还是我应该尝试在循环中添加“\n”?编辑:我刚决定添加
-
你当然可以自己解决这个问题。
-
只需在每个数字后添加一个换行符 (
'\n'):std::cout << d << '\n';。 -
@DietmarKühl 好吧,我就是这么做的,我只是想看看是否有更有效的方法,但我想只要添加一个“\n”就可以了,哈哈。再次感谢:]