0

バブル ソート メソッドと、ユーザーに配列の入力を求めるメイン関数を使用するプログラムを作成する必要があります。その後、プログラムは配列を昇順でソートします。私のプログラムは現在、ユーザーの入力を求めていますが、それが発生すると、プログラムはコンパイルされず、行き詰まります。コードは次のとおりです。

import java.util.Scanner;
public class IntSorter{
  public static int bubbleSort(int[] a){
    boolean needNextPass =true;
    for(int i=1; i<a.length && needNextPass; i++){
      needNextPass = false;
      for(int j=0; j<a.length - i; j++){
        if(a[j]> a[j+1]){
          int temp = a[j];
          a[j]=a[j+1];
          a[j+1] = temp;
          needNextPass = true;
          }
        }
      }
   for(int i=0; i<a.length; i++){
     System.out.print(a[j] + " ");
     }
   }
public static void main(String[] args){
  Scanner input = new Scanner(System.in);
  System.out.print("Enter size of array: ");
  int N = input.nextInt();
  int[] x = new int[N];
  System.out.print("Enter " +N +"numbers of your array: ");
    for(int i= 0; i<N; i++){
      x[i] = input.nextInt()
  }
  IntSorter access = new IntSorter();
  System.out.print("Your sorted array is: ");
  access.IntSorter(x);}
}
4

3 に答える 3

1

あなたのメインメソッドの最後の行は次のとおりです: -

access.IntSorter(x);

この行を次のように置き換えます: -

access.bubbleSort(x);

そして、single uppercase文字を変数として使用するのはひどいです..size配列のサイズの代わりに使用してください..

System.out.print("Enter " +N +"numbers of your array: ");
  for(int i= 0; i<N; i++){
      x[i] = input.nextInt()
  }

上記のコードで、ユーザーが整数値を入力しなかった場合はどうなりますか?? 例外が発生します..それをキャッチする必要があります..

于 2012-10-01T20:01:35.433 に答える
0

この行にはセミコロンがないようです:

  x[i] = input.nextInt()

jそして、そのスコープ外の変数にアクセスしているようです:

  System.out.print(a[j] + " ");
于 2012-10-01T20:00:44.637 に答える
0

which is undefinediの代わりに使用できます。j

for (int i = 0; i < a.length; i++) {
   System.out.print(a[i] + " ");
}

また

public static int bubbleSort(int[] a) {

int戻り値はありません。

コンパイラまたは IDE を使用して、これらの問題を強調することができます。

于 2012-10-01T20:02:27.430 に答える