2012-02-08 3 views
1

このプログラムを完了するのは難しいです。私はアステリックスを作成するプログラムを作ろうとしていますが、それを三角形にしています。Javaでの初心者 - 出力の制御 - Asterixの生成

これは私がすでに持っているものです。

...

感謝をそれはasteriksを作成しているが、どのように私は、彼らが三角形を作る場所にそれらを継続することができるでしょう...そう、彼らが行くように、彼らは大きなを取得した後、戻って小さな

public class 12345 { 
    public static void main(String[] args) { 
     int n = 0; 
     int spaces = n; 
     int ast; 

     System.out.println("Please enter a number from 1 - 50 and I will draw a triangle with these *"); 

     Scanner keyboard = new Scanner(System.in); 
     n = keyboard.nextInt(); 

     for (int i = 0; i < n; i++) { 
      ast = 2 * i + 1; 

      for (int j = 1; j <= spaces + ast; j++) { 
       if (j <= spaces) 
        System.out.print(' '); 
       else 
        System.out.print('*'); 
      } 

      System.out.println(); 
      spaces--; 
     } 
    } 
} 

あなたは事前に!

+1

番号で始まるクラス名は許可されていますか? – Shekhar

+0

菱形のような構造にしたいですか? – vikiiii

+0

は「直角三角形」を作成することから始まります。 – Azodious

答えて

1

nの値が標準入力から読み取られた後に

int spaces = n; 

を移動してみてください。

これは問題の半分を解決し、うまくいけば正しい軌道に乗ります。

+0

それはダイヤモンドのちょうど半分を解決するでしょう(上の三角形が印刷されます) – Kris

+0

はい、これは宿題である可能性が高いので、私はちょうど正しい方向に彼を軽く振りたいと思っていました。しかし、あなたは正しいです。私は私の答えをより明示的に更新する予定です。 –

+0

これは既に三角形の半分を印刷しています。私はそれが全体の三角形を作成する場所にする方法を自分自身を教えようとしています。 – LOVEHOPE

0

コードにいくつか追加して、完全な三角形を印刷するようにしました。ここで、スキャナに入力された数字は、最下行に印刷されたアスタリスクの数になります。私。入力が3の場合、三角形は1から3の2つの行になります。入力が5の場合、三角形は3 - > 3 - > 5のようになります。

public static void main(String[] args) { 
     int ast; 
     int reverse = 1; 

     System.out.println("Please enter a number from 1 - 50 and I will draw a triangle with these *"); 

     Scanner keyboard = new Scanner(System.in); 
     int spaces = keyboard.nextInt(); 


     for (int i = 0; i < spaces; i++) { 
      ast = 2 * i + 1; 

      for (int j = 1; j <= spaces + ast; j++) { 
       if (j <= spaces) { 
        System.out.print(' '); 
       } else { 
        System.out.print('*');} 
       if (j > spaces + ast) { 
        for (int k = 0; k < spaces-(reverse-1); k++) { 
         System.out.print(' '); 
        } 
       } 
       int k = 0; 
       reverse++; 

      } 

      System.out.println(); 
      spaces--; 
     } 
    } 
} 

変数jが最初のループ条件を超えたときにトリガするif-elseの後にif文を追加しました。これにより、最初のif文を本質的に繰り返すことによって出力線を対称にする別のループがトリガされます。

私はこれが役に立ちますように=)

関連する問題