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

您可以使用未定义i的来代替: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 回答