能输入数字,但不能排序,怎么回事啊?可以输入数字但排不了顺序,急急急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();
}
}
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();
}
}
{
number=new double[10];
{
for(i=1;i <=10;i++)
number[i]=scan.nextDouble();
} 你定义了10个大小的double数组,那么数组索引就是0到9,哪里来的10呢?数组索引从0开始.
下面是可以运行的程序,只是在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();
}
}
static double number[]; 就是静态Static字段的问题
为什么加了static以后就可以了呢?
class bijiao
{
input input1=new input(); static字段又称为“类变量”,即不管创建多少个该类的实例,得到的static变量值都是一样的。
只有这样,才能保证上面程序中的
input1.number 数组通过input2.receive();
得到初始化。
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]);
}
}