日期:2014-05-20 浏览次数:20734 次
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]);
}
}