2011-12-22 11 views
0

睡眠不足の可能性がありますこのC++ forループ、iside a forループについて説明してください。更新2

どのような順序で矩形が構築されるのですか?長さ最初に高さ?

そして示されただけcout<<"*"であれば、なぜcin>>値が出力に*の量として使用されていますか?

は私が5歳だったようなので、それを説明してください、それはあなた方の多くはNoobのものを知っている:D

コードが英語この時点で、再び、編集されました。そのエラーを指していただき、ありがとうございます、より多くのコーヒーを必要とする:/

#include <iostream> 

using namespace std; 

void drawRectangle (int l, int h) 
{ 
for (int line (0); line < h; line++) 
{ 
    for (int column (0); column < l; column++) 
    { 
     cout << "*"; 
    } 

    cout<<endl; 
} 
} 
int main() 
{ 
int length, height; 
cout << "Length for rectangle : "; 
cin >> length; 

cout << "Height for rectangle : "; 
cin >> height; 

drawRectangle (length, height); 

return 0; 
} 

UPDATE 1:

コードが台無しにされた場合でも、答えたすべての人に感謝します。私はちょうど私が理解を確認する:

#include <iostream> 

using namespace std; 

void drawRectangle (int l, int h) 

{ 
for (int line (0); line < h; line++) //this is the outer loop 
{ 
for (int column (0); column < l; column++) //this is the inner loop 
{ 
    cout << "*"; 
} 
cout<<endl; //the length is written then jumps here to break. 

/*So, the outer loop writes the length,from left to right, jumps to the cout<<endl; for a line break, then the inner loop writes the height under each "*" that forms the length?/* 

はUPDATE 2:右ここに私の答えを得た http://www.java-samples.com/showtutorial.php?tutorialid=326

私はこの謎が解決されると思います!私の質問に答えた皆さん、ありがとうございます:)私はあなたの助けに感謝します!

+0

**************** **************** **************** **************** 

:出力に含まは次のようになります。 '。ブレースは間違った位置にありますか? –

+21

*私は5歳のように説明してください*:母親のforループとお父さんのforループがお互いを大好きにすると、彼らは互いに入れ子になってコンパイルエラーを生成します:['Line 13:エラー: '}'トークンの前に期待されるprimary-expression](http://codepad.org/AvBcGf1o)あなたが年上であれば、コンパイルするコードを投稿する方法を学びます。 –

+0

@ todda.speot.is:それはすごい説明だった。おそらく、彼は矢を膝にかけたでしょう。 – AusCBloke

答えて

1

{構文がループで少し間違っています。

あなたの質問に答えるために矩形は*このように行全体を描画列1から始まる数で描画です:

* * * 
* * * 
* => * => * 
* * * 
* * * 

これは= 3、高さ= 5長方形の長さです。

+0

ありがとう、私の更新された質問をご覧ください:) – WellWellWell

3

はコンパイルされないため、実際には何も構成されません。 :/

(本来あるべき括弧を置くことによって)以下にdrawRectangleを変更すると、それはコンパイルになりますし、実行(が、しかし、あなたは、長さと高さであると考えるものを前後にある):

void drawRectangle(int l, int h) 
{ 
    for (int column (0); column < l; column++) 
    { 
     for (int line (0); line < h; line++) 
     { 
      cout << "*"; 
     } 

     cout<<endl; 
    } 
} 

lが5であり、hが4(drawRectangle(5, 4))であると仮定します。 forループは5回繰り返され、5行作成されます。これらの各行に対して、内側のforループが4回反復し、各繰り返しで'*'を出力します(したがって、各行に****が印刷されます)。内側のforループが終了すると、新しい行が出力され、外側の行は5回反復されるまで続きます。

そして、あなたが取得する:あなたがそこに持っている

**** 
**** 
**** 
**** 
**** 
+0

ありがとう、私の更新された質問をご覧ください:) – WellWellWell

1

非常に厄介なコードを。

void drawRectangle(int l, int h) 
{ 
    for (int column = 0; column < l; column++) 
    { 
     for (int line = 0; line < h; line++) 
     { 
      cout << "*"; 
     } 
     cout<<endl; 
    } 
} 

コンソール出力は左から右に行くので、最初にlenthを出力する必要があります。これは、内部ループにcout << "*"を入れることで行います。あなたの長さが書かれた後、外側のループは改行を置きます。 }(ライン++ int型のライン(0);ライン

+0

ありがとう、私の更新された質問を参照してください:) – WellWellWell

関連する問題