-1

我编写了一个程序来创建帕斯卡的三角形。该程序将行数作为输入并在控制台上显示三角形。我已经使用该setw()函数来设置数字之间的距离。它是单位个位数,但是当数字大于 10 时,宽度没有被正确调整,现在我已经:

if(P<10){
   std::cout << P ;
   std::cout <<std::setw(2);
}

if(P>=10){
   std::cout<<std::setw(3) << P ;
   std::cout<<std::setw(2);
}

这是控制台的输出:

                      1
                     1 1
                    1 2 1
                   1 3 3 1
                  1 4 6 4 1
                 1 5 10 10 5 1
                1 6 15 20 15 6 1
               1 7 21 35 35 21 7 1
              1 8 28 56 70 56 28 8 1
             1 9 36 84126126 84 36 9 110

我希望它看起来像一个正确的三角形,有人可以帮我吗?

4

1 回答 1

1

如果您阅读例如此参考资料,std::setw您将看到

如果调用以下任何函数,则流的宽度属性将重置为零(表示“未指定”)

然后继续列出基本上所有的输出运算符。

这意味着当你做

std::cout <<std::setw(2);

宽度只会为下一个输出操作设置。如果在此之后进行任何类型的输出,宽度将重置为零。

于 2013-05-24T10:56:29.910 回答