日期:2014-05-20  浏览次数:20717 次

冒泡错误
public class Mp {
  public static void main(String args[]){
// for(int i=0;i<a.length;i++){
// a[i]=Integer.parseInt(JOptionPane.showInputDialog(null,"请输入初始数据"));
// }
  int a[] = {8,2,5,6,4,1};
  fun(a);
  System.out.print("最后结果:");
  printArray(a);
   
  }  
  static void printArray(int a[]){
  for(int i=0;i<a.length;i++){
  System.out.print(a[i]+" ");
  }
  System.out.println();
  }
   
  static void fun(int a[]){
  for(int j=0;j<a.length-1;j++){
  for(int i=0;i<a.length-j-1;i++){
  if(a[i]>a[i+1]){
  int t;
  t=a[i];
  a[i]=a[i+1];
  a[i+1]=t;
  }
  }
  System.out.print("第"+(j+1)+"次冒泡:");
  printArray(a);
  }
  }
}
错误: 类Mp是公共的, 应在名为 Mp.java 的文件中声明

------解决方案--------------------
类Mp是public的,要把文件名命名为Mp.java.
------解决方案--------------------
public class的类名必须要与其文件名相同,你的public class Mp,那么对应的文件就应该是Mp.java
------解决方案--------------------
你的文件名应该是Mp.java才对。。
------解决方案--------------------
LS各位正解、
------解决方案--------------------
你的public class Mp,那么对应的文件就应该是Mp.java
------解决方案--------------------
Java code


public class Mp {
  public static void main(String args[]){
// for(int i=0;i<a.length;i++){
// a[i]=Integer.parseInt(JOptionPane.showInputDialog(null,"请输入初始数据"));
// }
  int a[] = {8,2,5,6,4,1};
  fun(a);
  System.out.print("最后结果:");
  printArray(a);
    
  }   
  static void printArray(int a[]){
  for(int i=0;i<a.length;i++){
  System.out.print(a[i]+" ");
  }
  System.out.println();
  }
    
  static void fun(int a[]){
  for(int j=0;j<a.length-1;j++){
  for(int i=0;i<a.length-j-1;i++){
  if(a[i]>a[i+1]){
  int t;
  t=a[i];
  a[i]=a[i+1];
  a[i+1]=t;
  }
  }
  System.out.print("第"+(j+1)+"次冒泡:");
  printArray(a);
  }
  }
}

------解决方案--------------------
或者 把public class Mp 修改为 class Mp,保存文件可以为其他名字XXX.java
 > javac XXX.java
 > java Mp
结果一样
------解决方案--------------------
这个程序没有问题,检查是不是类名与文件名不一样呀,写程序得小心注意,有时候一个不起眼的错误,能导致你检查半天时间也没有查出来,我编写的时候就会犯这种错误,以后尽量注意点
------解决方案--------------------
养成一个好的编程习惯……让源文件名与主类名一致。
------解决方案--------------------
你的源文件名字应该和public类Mp一样