-1

パスカルの三角形を作成するプログラムを作成しました。プログラムは入力として行数を取り、コンソールに三角形を表示します。関数を使用して、setw()数値間の距離を設定しました。単位は1桁ですが、数字が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を読むと、

次の関数のいずれかが呼び出されると、ストリームの width プロパティはゼロ (「未指定」を意味する) にリセットされます。

そして、基本的にすべての出力演算子をリストします。

これは、次のことを意味します。

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

幅は、次の出力操作のためにのみ設定されます。その後何らかの出力を行うと、幅はゼロにリセットされます。

于 2013-05-24T10:56:29.910 に答える