2017-12-07 12 views
-4

私はaligned multiplication tableを完成させようとしています。すべてが良いですが、\tちょっとループの最後のステップでは震えます。これは、このステップでのみ意図されたスペースを2倍挿入し、私は理由を知らない。whileループの最後のステップで tエラー(C++)

int main() 
{ 
    int N; 
    cin >> N; 
    int i = 1; 
    while (i<=N) 
    { 
     int j = 1; 
     while (j<=N) 
     { 
      cout << "(" << i << "x"; 
      cout << j << ")"; 
      cout << "=" << i*j; 
      j++; 
      cout << "\t\t"; 
     } 

     i++; 
     cout << "\n"; 
    } 
     system("pause"); 
     return 0; 
    } 

出力: output

+1

どのくらいのスペースがありますか、どのくらいのスペースがありますか? N = 1のときにエラーが発生しますか? – Beta

+2

」を含み、['setw()'](http://en.cppreference.com/w/cpp/io/manip/setw)を使用してください。 'while'ループの' cout'への最初の出力として 'setw(10)'を試してください。 – wally

+0

ヒント: 'cout <<" = "<< i * j;'を 'cout <<" = "<< 0;"に置き換え、何が起こるか観察する。 –

答えて

0

これは

#include <iostream> 
#include <cstdlib> 

using namespace std; 

int main() 
{ 
    int N; 
    cin >> N; 
    int i = 1; 
    while (i<=N) 
    { 
     int j = 1; 
     while (j<=N) 
     { 
      cout << "(" << i << "x" << j << ")" << "=" << i*j; 
      if (i*j < 10) cout << "\t\t"; 
      else cout << "\t"; 
      j++; 
     } 

     i++; 
     cout << endl; 
    } 
    system("pause"); 
    return 0; 
} 

あなたの問題は、最後の繰り返しではないだけに発生した問題を解決しているようです。これは、最初の2桁の結果の後に発生します(たとえば、N = 5のコードを実行しようとします)。結果にもう1桁の数字があるため(その例では(4x3)= 12であるため)、その行に出力される次の操作は\ t右にプッシュされます。

関連する問題