能输入数字,但不能排序,怎么回事啊?可以输入数字但排不了顺序,急急急import java.util.Scanner;
class input
{
 Scanner scan=new Scanner(System.in);
 double number[];
 int i;
 void receive()
 {
 number=new double[10];
 {
 for(i=1;i<=10;i++)
 number[i]=scan.nextDouble();
 }
  }
}
class bijiao
{
input input1=new input();
int i,j;
double t;
void bijiao1()
{
for(j=1;j<=9;j++)
for(i=1;i<=10-j;i++)
if(input1.number[i]>input1.number[i+1])
{
t=input1.number[i];
input1.number[i]=input1.number[i+1];
input1.number[i+1]=t;
}
for(i=1;i<=10;i++)
System.out.println("排序后的顺序为:\n");
    System.out.print(" "+input1.number[i]);
}
}
public class Compare
{
public static void main(String args[])
{
input input2=new input();
bijiao bijiao2=new bijiao();
System.out.print("请输入10数字:");
input2.receive();
bijiao2.bijiao1();
}
}

解决方案 »

  1.   

    void receive()
     {
     number=new double[10];
     {
     for(i=1;i <=10;i++)
     number[i]=scan.nextDouble();
     } 你定义了10个大小的double数组,那么数组索引就是0到9,哪里来的10呢?数组索引从0开始.
      

  2.   

    数组的下标是从0开始的。你定义了一个10个元素的数组,要访问时是从number[0]-number[9]而不是从number[1]-number[10]
      

  3.   

    LZ的程序写得很乱!
    下面是可以运行的程序,只是在LZ的原来基础上稍微修改了下:
    注意LZ从键盘上输入时必须输入double型的数据!import java.util.Scanner; 
    class input 

     static Scanner scan=new Scanner(System.in); 
     static double number[]; 
     int i; 
     void receive() 
     { 
     number=new double[10]; 
     { 
     for(i=0;i <=9;i++) 
     number[i]=scan.nextDouble(); 
     } 
      } 

    class bijiao 

    input input1=new input(); 
    int i,j; 
    double t; 
    void bijiao1() 

    for(j=0;j <=9;j++) 
    for(i=0;i <9-j;i++) 
    if(input1.number[i] >input1.number[i+1]) 

    t= input1.number[i]; 
    input1.number[i]=input1.number[i+1]; 
    input1.number[i+1] = t; 

    System.out.println("排序后的顺序为:\n"); 
    for(i=0;i <=9;i++)     System.out.print(" " + input1.number[i]); 


    public class Compare 

    public static void main(String args[]) 

    input input2=new input(); 
    bijiao bijiao2=new bijiao(); 
    System.out.print("请输入10数字:"); 
    input2.receive(); 
    bijiao2.bijiao1(); 

    }  
      

  4.   

    static Scanner scan=new Scanner(System.in); 
     static double number[]; 就是静态Static字段的问题
    为什么加了static以后就可以了呢?
      

  5.   

    LZ的bijiao类中有:
    class bijiao 

    input input1=new input(); static字段又称为“类变量”,即不管创建多少个该类的实例,得到的static变量值都是一样的。
    只有这样,才能保证上面程序中的
    input1.number 数组通过input2.receive(); 
    得到初始化。
      

  6.   

    这段程序存在两个问题,第一是定义的数组长度为十,他的下标应是从0--9,而不是1--10。第二个问题是类bijiao里所使用的对象input1并不是主函数里的对象input2,二者没有联系。下面是经过我稍微修改后的代码。运行无错。
    import java.util.Scanner; public class Compare 

    public static void main(String args[]) 

    input input2=new input(); 
    bijiao bijiao2=new bijiao(input2); 
    System.out.print("请输入10数字:"); 
    input2.receive(); 
    bijiao2.bijiao1(); 


    class input 

     Scanner scan=new Scanner(System.in); 
     double number[]; 
     int i; 
     void receive() 
     { 
     number=new double[10]; 
     { 
     for(i=0;i <=9;i++) 
     {
     number[i]=scan.nextDouble();  }
     } 
      } 

    class bijiao 

    input input1; 
    public bijiao(input input1)
    {
    this.input1=input1;
    }
    int i,j; 
    double t; 
    void bijiao1() 

    for(j=0;j <=9;j++) 
    for(i=0;i <9-j;i++) 
    {if(input1.number[i] >input1.number[i+1]) 

    t=input1.number[i]; 
    input1.number[i]=input1.number[i+1]; 
    input1.number[i+1]=t; 


    }
    System.out.println("排序后的顺序为:\n");
    for(i=0;i <=9;i++) 
    System.out.print(" "+input1.number[i]);  

    }