我如何创建一个程序,让用户输入数据,然后让程序从1输入到他们输入的数字,然后从他们输入的数字到1,它必须是向上和向下,但是像这样:
它从1开始,然后在另一条线上变为1和2(没有空格),然后在该线之后变为1,2和3,没有空格并继续在每行上添加数字直到它到达你输入代码的数字,然后从你输入的数字返回并返回到一个与计数相同的方式,但通过使用嵌套的FOR循环下降。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int row, col;
char myCh;
cout << "Please enter the number you wish to count up to: ";
cin >> myCh;
for(row = 1; row <= myCh; row ++)
{
cout << "\n";
for(col = 1; col <= row; col ++)
{
cout << myCh;
}
}
for(row = 1; row >= myCh; row --)
{
cout << "\n";
for(col = 1; col >= row; col --)
{
cout << myCh;
}
}
cout << "\n\n\n";
system("Pause");
return 0;
}
这变为五角形的三角形,我希望它们能够计入用户输入的任何数量,并从用户的输入减少到1。
答案 0 :(得分:1)
这是N == 12的示例输出:
1
12
123
1234
12345
123456
1234567
12345678
123456789
12345678910
1234567891011
123456789101112
你注意到任何模式吗?
我看到的一种模式是有12行或迭代。嗯,看起来像第一个或外部循环从1到12(包括)。
其他模式不是那么明显,所以让我们注释。
[]
中的数字是外部for
循环中的行号或索引:
[ 1]1
[ 2]12
[ 3]123
[ 4]1234
[ 5]12345
[ 6]123456
[ 7]1234567
[ 8]12345678
[ 9]123456789
[10]12345678910
[11]1234567891011
[12]123456789101112
嗯,对于每个索引,每行中的数字从1到包含索引。
第一个分析说你需要一个for
循环。因为我不知道如何提示用户,所以我会为限制设置一个固定数字。我正在查找for
循环...
好的,让我们使用一些变量名称,例如row
和value
:
const unsigned int limit = 12U;
unsigned int row;
for (row = 1; row <= limit; ++row)
{
std::cout << "[" << row << "]" << endl;
}
此循环将打印&#34;行号&#34;在[]
内,与上面的第二个分析一样。
请注意,上面的{
表示要在for
语句中为每个循环执行一个或多个语句。 }
表示要在循环中执行的语句的结束。
因此,您需要打印每个值,而不是打印行号。对我来说听起来像是另一个for
循环。正如您的评论所要求的,如何让它回归到一个。好吧,这是内部for
循环中初始化的工作。
const unsigned int limit = 12U;
unsigned int row;
for (row = 1; row <= limit; ++limit)
{
// Now, a brand new for loop to print the values.
for (unsigned int value = ???; value <= ???; ++value)
{
std::cout << value;
}
}
那么,您可以初始化value
以正确打印此三角形?
什么是value
与表示行结束的比较?
内部for
循环到将回车返回到新行并提供行之后需要发生什么一个人?
尝试使用调试器,看看会发生什么。你会感到惊讶!