2017-03-01 6 views
-8

は、私は質問4のコードを把握するために管理しますが、それは間違っているになります。この試験紙C#コードは何をしていますか?

private void button1_Click(object sender, EventArgs e) 
    { 
     string msg = ""; 
     int i = 1; 

     while (i < 6) 
     { 
      int col = 0; 
      while (col < i) 
      { 
       msg += i; 
       col++; 
      } 
      msg += "\n"; 
      i++; 
     } 

     MessageBox.Show(msg); 
    } 

ためとif文を使って、それを行うための簡単な方法はありますか?

Home Picture

また質問5のために、私は完全に失われています。

+1

以下のreddit、より多くの読書を働くことができます。私はこんにちは。 –

+0

あなたは何がうまくいかなかったのか、何を試したのか、何をすべきかを説明する必要があります。 – Sayse

+0

これは2つの質問であり、広すぎます。私は通常、編集中の質問5の参照を削除しようとしていますが、これは試行されていませんが、以下にいくつかの人が答えているので、それを放棄します。それはあなたが質問4を試してみましたが良いですが、何が "間違って見える"ことが明らかではありません。それは動作しますか?あなたはそれをテストしましたか? – halfer

答えて

-2

はこれを試してみてください:

private void button1_Click(object sender, EventArgs e) 
{ 
    string msg = ""; 
    for (var i = 1; i < 6; i++) 
    { 
     for (var col = 0; col < i; col++) 
     { 
      msg += i; 
     } 
     msg += "\n"; 
    } 
    MessageBox.Show(msg); 
} 
+0

これはダウン投票しないでください。特に迅速に投票してください。 OPはそれが宿題であると明確に言った。 – Enigmativity

+0

問題を解決する方法を説明していないので宿題に関係なく「試してください」という恐ろしい答えです。 – Sayse

+0

@Enigmativity素晴らしい感謝!私は2番目のステートメントでi ++を置き換えて++ ++としました! +1 – Michael

0

はあなたがEnigmativityからソリューションを使用することができ、質問4を解決するために。

string output = string.Empty; 
const string symbol = "*"; 

//Loop up to the half to print the upcomming way 
for (int i = 1; i <= 5; i++) 
{ 
    //Based on index i we need to print asterix 
    for (int up = 0; up < i; up++) 
    { 
     output += symbol; 
    } 

    //After all asterix are written to string we need a NewLine. 
    output += Environment.NewLine; 
} 

//Here we start the same part as above but reverse it 
//So counting from upper end down 
for (int i = 5; i >= 1; i--) 
{ 
    for (int down = 0; down < i; down++) 
    { 
     output += symbol; 
    } 

    output += Environment.NewLine; 
    } 

    //The Trim(); will cut any free spaces before and after the string 
    //So we can easily cut the last NewLine which is inserted but not needed 
    MessageBox.Show(output.Trim()); 

私はコードのコメントは、私たちがここでやっているあなたを説明願っています:質問5のために私はあなたにこのような何かをお勧めします。私はそれが明瞭さに焦点を当てた最も簡単な方法だと思う。両方の外部forループは同じことをします。最初は半分にカウントし、2番目の値は半分から最後までカウントダウンします。

+0

文字列出力= string.Empty; const string symbol = "*"; 私は空の前に空を見たことがありません、彼らは何であり、何をしているのか説明できますか? – Michael

+0

@Michael string output = string.Emptyは文字列output = ""の書き込みです。読みやすくするために、C#の小さな美しさの機能です。 constキーワードは、この値が定数で変更できないことをコンパイラに知らせます。自分で試して、symbol = "test"を呼び出してください。またはsth。あなたのコードでは、const行の後に。コンパイラエラーになります。 – Sebi

0

質問番号については、 5 あなたが上記の答えを理解しているなら、私はあなたもこのことを理解するようになると確信しています。私がやっていることは、数字の代わりに*、つまりiを印刷してから、逆のループにすることです。

private void button1_Click(object sender, EventArgs e) 
{ 
string msg = ""; 
    for (var i = 1; i < 6; i++) 
    { 
    for (var col = 0; col < i; col++) 
    { 
     msg += "*"; 
    } 
    msg += "\n"; 
    } 
    for (var i = 5; i >= 1; i--) 
    { 
     for (var col = 0; col< i; col++) 
     { 
      msg += "*"; 
     } 
     msg += "\n"; 
    } 
    MessageBox.Show(msg.Trim()); 
} 
+0

それはもう少し意味がある - それは私たちが授業でやっていたことに近いです、ありがとう! – Michael

+0

@ Gaurav Singhこれは最後に空白の行が表示されます。 Trim()を使用します。最後の "\ n"を削除します。メッセージボックスでは、これを見ることはできませんが、コンソールやsthに転送した場合は表示されます。それは少し醜い;-) – Sebi

0

質問4のためにあなたは、あなたがコードこの間違いなく下に使用できる質問5については、この単純なコード

   for (int i = 1; i <= 5; i++) 
       { 
        for(int j=0;j<i;j++) 
        { 
         Console.Write(i); 
        } 
        Console.WriteLine(); 
       } 

を試してみてください

  for (int i = 1; i <= 10; i++) 
      {  
       for (int j = 1; j <= 5; j++) 
       { 
        if (i >= j && i <= 5) 
        { 
         Console.Write("*"); 
        } 
        else if (i > 5 && (i+j) <= 11) 
        { 
         Console.Write("*"); 
        } 

       } 
        Console.WriteLine(); 
      } 
関連する問題