0

内部にアスタリスク、周囲にパーセント記号を使用して、カウントごとのマトリックスを作成する必要があります。ユーザーは数値を入力するように求められ、アスタリスク、パーセント記号、および行の数はユーザー入力によって異なります。

例: ユーザー入力が 5 の場合、出力は次のようになります...

%%%%%
%***%
%***%
%***%
%%%%%

for ループを使用しようとしていますが、幅 5 つ、高さ 5 つのアスタリスクを出力して小さな正方形を作成するようにプログラムしていますが、1 行おきにパーセント記号として出力する方法がわかりません。

私がすでに行ったやや似たコードは7cの下にあります。それは似ていますか?パーセント記号で縁取る方法がわかりません。

これまでの私のコードは次のとおりです。どこから始めればいいのか見当がつかないので、7d についてはまだ何もしていません。ループを実行することはわかっていますが、開始方法がわかりません。コードを挿入したので、変数やその他の必要な情報を確認できます。ありがとう!

import java.util.Scanner;
public class Project1
{
   public static void main(String[] args)
   {
   System.out.println("************** Question 1 *************************\n");
   System.out.println("*\n");
   System.out.println("***************************************************\n");
   System.out.println("************** Question 2 *************************\n");
   char perc = '%';
   char ast = '*';
   System.out.println(ast+"\n");
   System.out.println("***************************************************\n");
   System.out.println("************** Question 3 *************************\n");
   for (int i = 0; i<=9; i++)
   {
      System.out.print(ast);
   }
   System.out.println("\n");
   System.out.println("***************************************************");
   System.out.println();
   System.out.println("************** Question 4 *************************");
   System.out.println();
   for (int i =0; i<=9; i++)
   {
      System.out.println(ast);
   }
   System.out.println();
   System.out.println("***************************************************");
   System.out.println();
   System.out.println("************** Question 5 *************************");
   Scanner keyboardInput = new Scanner(System.in);
   System.out.println("Please enter a positive number :");
   int count = keyboardInput.nextInt();
   for (int i=0; i<=count;i++)
   {
      System.out.print(ast);
   }
   System.out.println("\n");
   System.out.println("***************************************************\n");
   System.out.println("************** Question 6 *************************\n");
   for (int i=1;i<=count;i++)
   {
      System.out.print(ast);
      if (i%5==0)
      {
         System.out.println();
      }
   }   
   System.out.println();
   System.out.println();
   System.out.println("***************************************************\n");
   System.out.println("************** Question 7a ************************\n");  
   System.out.println("***************************************************\n");
   System.out.println("************** Question 7b ************************\n");
   for (int h=0;h<count;h++)
   {
      for (int w=0;w<count;w++)
      {
         System.out.print(ast);
      }
      System.out.println();
   }
   System.out.println(); 
   System.out.println("***************************************************\n");
   System.out.println("************** Question 7c ************************\n");
   for(int i=0;i<=count;i++)
   {
      String x;
      if(i%2==0)
      x="*";
      else
      x="%";
      for(int w=0;w<count;w++)
         {
            System.out.print(x);
         }
      System.out.println();
   }
   System.out.println();
   System.out.println("***************************************************\n");
   System.out.println("************** Question 7d ************************\n");
   System.out.println("***************************************************\n");   
   }
}
4

2 に答える 2

1

最初と最後の行を特別に印刷し、各行の最初と最後の文字を印刷する必要があります。アルゴリズムは次のようになります。

  1. 1 行のcountパーセントを印刷します。
  2. count-2「混合」行を印刷します。(count-2最初と最後の行を考慮します。)
  3. パーセントの最後の行を印刷します。

「混合」行を印刷するには、アプローチは似ています。

  1. 1 パーセントを印刷します。
  2. count-2アスタリスクを印刷します。(count-2上記参照)
  3. 最終パーセントを出力します。

printFullRow()や などのヘルパー関数を使用することをお勧めしますprintMixedRow()。(これはおそらく、割り当てがあなたを導くはずだった場所です。) 一般的に、より多くのヘルパー関数を使用することも良い考えです。

于 2013-09-24T23:31:13.327 に答える
0

次のようなことをする必要があります:

for (int i=0; i<count;i++)
   {
    if(i>0 && i<count-1)
      System.out.print(ast);
    else
      System.out.print(perc);
   }
于 2013-09-24T23:30:15.593 に答える