当前位置: 代码迷 >> J2SE >> 请问下这个程序什么有关问题
  详细解决方案

请问下这个程序什么有关问题

热度:150   发布时间:2016-04-24 13:23:55.0
请教下这个程序什么问题?
能输入数字,但不能排序,怎么回事啊?[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]);

}
  相关解决方案