0

ここでは、配列numの内容を表示するメソッド printArray を記述し、各数値をスペースで区切って配列の内容を表示する必要があります。そして、20要素ごとに新しい行を開始する必要があります。

私はこのコードを書きましたが、実行しようとすると、改行のない配列が表示されます

public class project2 {

    public static void main(String[] args) {

        int num []= new int [100];

        for (int i=0;i<num.length;i++){

            num[i]=-1;
            num[7]=7;
        }


        printArray(num);
        System.out.println(num);


    }

    public static void printArray (int array1[]){

        int count =20;
        for (int x=0;x<array1.length;x++){

            System.out.print(array1[x]+" ");
            if (array1[x]==count){

                System.out.println(" ");
                count=array1[x]+count;

            }

        }
    }
}
4

5 に答える 5

1
import java.util.Arrays;
import java.util.Random;

public class project2 {

  public static void main(String[] args) {

    int num[] = new int[100];

    Random random = new Random();
    for (int i = 0; i < num.length; i++) {

      num[i] = random.nextInt(100);
    }


    printArray(num);

    System.out.println('\n' + Arrays.toString(num));
  }

  public static void printArray(int array1[]) {

    int count = 20;
    for (int i = 0; i < array1.length; i++) {

      System.out.printf("%2d ", array1[i]);
      if ((i + 1) % count == 0) {

        System.out.println("");
      }

    }
  }
}
于 2013-01-24T09:25:35.443 に答える
0

問題は、配列に存在する値
if (array1[x]==count)
と比較していることです。count代わりに、他の回答/コメントで提案されているように、目的のカウント、つまり20またはモジュロ演算子を使用して比較してください。

int count = 1;
for (int x=0;x<array1.length;x++){

    System.out.print(array1[x]+" ");

    if (count == 20){    // Check if its 20th element 
       System.out.println(" ");
       count=1;  // reset count 
    }
   count++;
}
于 2013-01-24T09:15:54.290 に答える
0

モジュロ(または剰余)演算子(%)を使用する必要があります。これは、使用法にはるかに適しています。

for (int x=0;x<array1.length;x++){
    System.out.print(array1[x]+" ");
    if (x>0 && (x%count)==0){
        System.out.println(" ");
    }

}

このようにして、count文字ごとに新しい行を取得し、最初の行にはそれがありません (それがx>0チェックがある理由です)。

また、元の投稿では、この行は率直に言って完全に悪いです:

count=array1[x]+count;

それは何をするでしょうか?配列に格納されているを固定カウンターに追加するのはなぜですか? この行を考慮して、少し腰を下ろして、物事がバックグラウンドでどのように機能するかを考えてみることをお勧めします... 魔法はありません!

于 2013-01-24T09:17:51.623 に答える
0

if ステートメントを詳しく見てみましょう。

if (array1[x]==count)

配列の値によると、これはtrueを返すことはありません

于 2013-01-24T09:17:52.093 に答える
0

20 要素ごとに新しい行を開始する必要があります。

次のコードに変更します。

if (x%20 == 0)
{
    System.out.println();
}

代わりに

if (array1[x]==count)
{
    System.out.println(" ");
    count=array1[x]+count;
}
于 2013-01-24T09:18:15.730 に答える