我的任务如下:
如图所示打印数字0,1,2,...,
userNum
,每个数字缩进该空格数。对于每个打印行,打印前导空格,然后打印数字,然后打印换行符。提示:使用i
和j
作为循环变量(显式初始化i
和j
)。注意:在打印的数字后避免使用任何其他空格,例如空格。例如:userNum = 3
打印:0 1 2 3
到目前为止,我有:
#include <iostream>
using namespace std;
int main() {
int userNum = 0;
int i = 0;
int j = 0;
for (i; i <= userNum; i++)
{
for (j; j <= userNum; j++)
{
cout << userNum << endl;
}
}
return 0;
}
我还是新手。如何循环其余的数字和空格?
答案 0 :(得分:4)
您的循环在语法上是嵌套的,但不是语义上的,因为j
仅在循环外初始化。此外,您正在打印userNum
,这绝对不是您应该打印的内容。
考虑为什么需要两个嵌套循环:一个从0计数到userNum
,另一个(内部循环)计算每个这些数字之前的空格。第二个也必须是一个循环,因为空格的数量取决于第一个循环到目前为止的距离。
尝试修改循环,以便i
上的循环处理数字,j
上的循环处理空格。
提示:您可以(并且应该)在for
构造的第一部分内声明循环变量:
for (int i = 0; i <= userNum; ++i) {
for (int j = 0; j <= /*something*/; ++j) {
由于这显然是一次学习练习,我故意不会给出完整的答案。