我有一个问题,就是要求我在代码中使用少于3个“cout”语句的for循环编写一个C ++程序来打印以下模式(忽略管道,星号不会出现它们):
| *
| ***
| *****
| *******
| *********
| *********
| *******
| *****
| ***
| *
这是我用于斐波那契发生器的代码,我觉得它可能类似。我可以打印" *"符号但不是水平线。我最需要帮助的是扭转输出。如果给定数字n,我希望系列在系列中输入n个数字,然后返回到0。
#include <iostream>
using namespace std;
int main()
{
int y = 1, sum = 1, n;
cout << "Enter the number of terms you want" << endl;
cin >> n;
cout << "First " << n << " terms are :- " << endl;
for (int x = 0; x < n; x++) {
cout << "\n" <<endl;
for (int i = 0; i < sum; i++) {
cout << "*" << endl;
}
sum = y + 2;
y = sum;
}
}
答案 0 :(得分:0)
这似乎是一个功课,所以我提供一些提示而不是完整的解决方案。
*
,请注意<< endl
将结束输出中的行,即打印换行符。 (顺便说一句<< "\n"
也是如此。)并非每个cout
语句都必须在其末尾有<< endl
。sum
中得到最后一个数字,就进行反向计算(即减法)。这个可以在第二组循环中完成,但是,因为你不应该经常使用cout
语句,所以你最好通过使用一些重用相同的循环附加变量保持当前状态(即,如果您正在向上或向下计数)并使用if
来决定要执行的计算。 (我读了这样的要求,只有用于打印模式的cout
语句计数到“小于3”= 2)