2016-11-25 10 views
1

コンソールで垂直方向のヒストグラムを整数配列から計算します。 配列は、この洞式で満たされますし、その後のループのための2つは、魔法を実行する必要があります。垂直ヒストグラムを描画するC#

ここ
for (int i = 0; i < 30; i++) //fill array 
    f[i] = (int)(10 * Math.Sin(2 * Math.PI/30 * i) + 15); 

//draw histogram: 
int maxValue = f.Max(); 
for (int i = 0; i <= maxValue; i++) 
{ 
    for (int j = 0; j < f.Length; j++) 
     { 
     if (f[j] >= maxValue) 
      Console.Write("*"); 
     else 
      Console.Write(" "); 
     } 
    maxValue--; 
    Console.Write("\n"); 
} 

が何であるかを私のコードの出力: my result

しかし、結果は次のようになります。 right solution星とスペースの13行目まで部分的に取り組んで

その...私は私の結果からわかるように

:それはWORを行いますk、しかし、どういうわけか外側のforループは13回実行したいと思って停止することに決めましたが、理由はわかりません。これは私が質問している理由です。

ありがとうございます!

答えて

0

変更フィルアレイ部へ:

f[i] = (int)(10 * Math.Sin(2 * Math.PI/30 * i) + 40); 
+0

のthats正しい、 – user2448539

+0

も正しい答え、感謝あまりにもありがとうあなたは非常に! – user2448539

0

あなたは正しいことはできません両方の水平および垂直方向の寸法でmaxValueを、使用しています。

外側ループの終了条件を変更します。この代わりに:

for (int i = 0; i <= maxValue; i++) 

...これを書く:

for (int i = 0; i <= f.Length; i++) 

が...これを取得する:

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

今、あなたの助けに感謝! – user2448539

+0

その場合、答えを受け入れることを自由にしてください。 :-) –

関連する問題