import javax.swing.JOptionPane;
public class FenShu{
public static void main(String args[]){
FenShu aaa=new FenShu();
String n1,n2;
int gs;
n1=JOptionPane.showInputDialog("请输入人数:");
gs=Integer.parseInt(n1);
int fs[]=new int[gs];
for(int j=0;j<gs;j++)
{n2=JOptionPane.showInputDialog("输入第"+(j+1)+"分数");
fs[j]=Integer.parseInt(n2);
}

//排训
for(int o=0;o<fs.length;o++)
for(int k=0,temp;k<fs.length-o;k++)
{if(fs[k]>fs[k=1])
  temp=fs[k];
  fs[k]=fs[k+1];
  fs[k+1]=fs[k];
}//输出
   String output="";
   for(int w=0;w<fs.length;w++)
     output+=fs[w]+"    ";
     
   JOptionPane.showMessageDialog(null,"结果是:"+output,"结果",JOptionPane.PLAIN_MESSAGE);  

}
}

解决方案 »

  1.   

    for(int k=0,temp;k<fs.length-o;k++)
    这里不知道为什么是死循环了
      

  2.   


    import javax.swing.JOptionPane;
    public class Test {
    public static void main(String args[]) {
    Test aa = new Test();
    String s1, s2;
    s1 = JOptionPane.showInputDialog("please input one integer: ");
    int a[] = new int[Integer.parseInt(s1)];
    for (int i = 0; i < Integer.parseInt(s1); i++) {
    s2 =
    JOptionPane.showInputDialog(
    "please input the " + (i + 1) + "score");
    a[i] = Integer.parseInt(s2);
    }
    for (int o = 0; o < a.length; o++) { for (int k = 0, temp = 0; k < a.length - (o + 1 ); k++) {
    if (a[k] > a[k + 1]){
    temp = a[k];
    a[k] = a[k + 1];
    a[k + 1] = temp;
    }
    }
    }
    String output = "";
    for (int w = 0; w < a.length; w++)
    output += a[w] + "    "; JOptionPane.showMessageDialog(
    null,
    "结果是:" + output,
    "结果",
    JOptionPane.PLAIN_MESSAGE);
    }
    }猜测搂主是为了把数据按从小到大进行排序~~所以写出了以上代码~
      

  3.   

    奇怪的是我原来的
    第二成循环k<a.length不知道为什么有错误,但是如果-一个数给他就可以了!
      

  4.   

    o<a.length-1!
    应该是这样了吧!
      

  5.   

    for(int k=0,temp;k<fs.length-o-1;k++)
    ////////////////////
    k可以取到fs.length-2
    k+1就可以取到fs.length-1
    这样才不会让fs[k+1]益出