如何打印其余这些数字?

时间:2016-02-09 18:58:32

标签: c++

我的任务如下:

  

如图所示打印数字0,1,2,...,userNum,每个数字缩进该空格数。对于每个打印行,打印前导空格,然后打印数字,然后打印换行符。提示:使用ij作为循环变量(显式初始化ij)。注意:在打印的数字后避免使用任何其他空格,例如空格。例如: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;
}

我还是新手。如何循环其余的数字和空格?

1 个答案:

答案 0 :(得分:4)

您的循环在语法上是嵌套的,但不是语义上的,因为j仅在循环外初始化。此外,您正在打印userNum,这绝对不是您应该打印的内容。

考虑为什么需要两个嵌套循环:一个从0计数到userNum,另一个(内部循环)计算每个这些数字之前的空格。第二个也必须是一个循环,因为空格的数量取决于第一个循环到目前为止的距离。

尝试修改循环,以便i上的循环处理数字,j上的循环处理空格。

提示:您可以(并且应该)在for构造的第一部分内声明循环变量:

for (int i = 0; i <= userNum; ++i) {
  for (int j = 0; j <= /*something*/; ++j) {

由于这显然是一次学习练习,我故意不会给出完整的答案。