2016-10-13 6 views
0

以下のコードは私の得たプロジェクトの中で最も近い繰り返しです。
このプログラムの目的は、左側の最も高いものから右側の最も短いものまで並べてタワーを並べて印刷することです。Javaで高さでソートされた同じ行にアスタリスク(*)のタワーのセットを印刷するにはどうすればよいですか?

+2

あなたの質問は何ですか? – shmosel

+1

3つのタワーを同時に印刷するのに問題がありますか?一番高いタワーから始めるだけで、2番目のタワーの高さに達すると(最初のタワーを印刷しながら)、2番目のタワーを印刷して、3番目のタワーを印刷します。秒。それは基本的にあなたの教授の擬似コードがやっていることです。 – DigitalNinja

+0

もし私がこの権利を読んでいれば、何も左の最高の塔を保っていません。高さはランダムでなければなりませんか? –

答えて

0

これはあなたの宿題なので、主な実装の詳細はあなた次第ですが、これをいくつかの方法に分解することをお勧めします。

getFloor - widthc文字の後にスペースを続けて印刷します。

private static void printFloor(int width, char c) { 
    StringBuilder sb = new StringBuilder(); 
    for (int i = 0; i < width; i++) { 
     sb.append(c); 
    } 
    sb.append(" "); 
    System.out.print(sb.toString()); 
} 

すると、そのpsudeocodeはあなたがint maxHeight = max(tower0, tower1, tower2)を取得する方法を把握する必要があり、この

// For each row=maxHeight ... 1 
for (int height = maxHeight; height >= 0; --height) { 
    printFloor(w0, '*'); // print width many chars 

    if (tower1 >= height) { // if tower1 is at height row 
     printFloor(w1, '*'); 
    } else { 
     printFloor(w1, ' '); 
    } 

    if (tower2 >= height) { // if tower2 is at height row 
     printFloor(w2, '*'); 
    } else { 
     printFloor(w2, ' '); 
    } 

    System.out.println(); // Start next height 
} 

に変換されます。それを降順で並べ替えるだけでなく、

あなたのコードはすでにあなたに幅を得るべきです(w0, w1, w2)

+0

あなたのソリューションを実装した後の私の最終的なコードは... – Raptor6872

+0

ソリューションを投稿する必要はありません。 (もしそうなら、それはあなたの学術政策に反するかもしれません) –

関連する問題