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

请教下这个程序什么问题?
能输入数字,但不能排序,怎么回事啊?[code=Java][/code]可以输入数字但排不了顺序,急急急
[code=Java][/code]
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();
}
}


------解决方案--------------------
LZ的程序写得很乱!
下面是可以运行的程序,只是在LZ的原来基础上稍微修改了下:
注意LZ从键盘上输入时必须输入double型的数据!
Java code

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(); 
} 
}

------解决方案--------------------
这段程序存在两个问题,第一是定义的数组长度为十,他的下标应是从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]);

}