import java.io.*;
public  class Point {
public static void main(String args[]){
int a[]=new int [10];
int b[]=new int [10];
int c[]=new int [10];
         int x,y;
         int i;
         
          for (i=0;i<=9;i++){
          
x=(int)(Math.random()*10);
y=(int)(Math.random()*10);
b[i]=x;
c[i]=y;   
      
}
   
      for (i=0;i<=9;i++){
      
          
      sort (b,c);
      
      System.out.println("这点的坐标是:"+b[i]+","+c[i]); 
    
      
 System.out.println("点到原点的距离是:"+a[i]); 
   


  
  }
  
}
static void sort(int b[],int c[]){
    int a[]=new int [10];
   



for(int i=0;i<=8;i++)
for(int j=i+1;j<=9;j++){


a[i]=(int)(Math.sqrt(b[i]*b[i]+c[i]*c[i]));
a[j]=(int)(Math.sqrt(b[j]*b[j]+c[j]*c[j]));

  if (a[i]>a[j]){
int temp2=a[i];
a[i]=a[j];
a[j]=temp2;

}
if(b[i]*b[i]+c[i]*c[i]>b[j]*b[j]+c[j]*c[j])
{
int temp=b[i];
b[i]=b[j];
      b[j]=temp;
     
      int temp1=c[i];
      c[i]=c[j];
      c[j]=temp1;
     
         
     
     
}
}
}
}
为什么这个程序输出来的点到原点的距离都是零?应该怎样改?

解决方案 »

  1.   

    程序改为:
    import java.io.*; 
    public  class Point21 { 
    public static void main(String args[]){ 
     int a[]=new int [10]; 
    int b[]=new int [10]; 
    int c[]=new int [10]; 
             int x,y; 
             int i; 
              
              for (i=0;i <=9;i++){ 
               
    x=(int)(Math.random()*10); 
    y=(int)(Math.random()*10); 
    b[i]=x; 
    c[i]=y;    
           

        
          for (i=0;i <=9;i++){ 
           
               
          a=sort (b,c); 
           
          System.out.println("这点的坐标是:"+b[i]+","+c[i]);  
         
           
     System.out.println("点到原点的距离是:"+a[i]);  
        
       
      } 
       

    static int[] sort(int b[],int c[]){ 
        int a[]=new int [10];
    for(int i=0;i <=8;i++) 
    for(int j=i+1;j <=9;j++){
    a[i]=(int)(Math.sqrt(b[i]*b[i]+c[i]*c[i])); 
    a[j]=(int)(Math.sqrt(b[j]*b[j]+c[j]*c[j]));   if (a[i]>a[j]){ 
    int temp2=a[i]; 
    a[i]=a[j]; 
    a[j]=temp2; } 
    if(b[i]*b[i]+c[i]*c[i]>b[j]*b[j]+c[j]*c[j]) 

    int temp=b[i]; 
    b[i]=b[j]; 
          b[j]=temp; 
          
          int temp1=c[i]; 
          c[i]=c[j]; 
          c[j]=temp1; 
          
              
          
          


     return a;

    } 运行结果是:这点的坐标是:2,1
    点到原点的距离是:2
    这点的坐标是:2,2
    点到原点的距离是:2
    这点的坐标是:3,1
    点到原点的距离是:3
    这点的坐标是:3,4
    点到原点的距离是:5
    这点的坐标是:3,5
    点到原点的距离是:5
    这点的坐标是:6,5
    点到原点的距离是:7
    这点的坐标是:4,7
    点到原点的距离是:8
    这点的坐标是:2,8
    点到原点的距离是:8
    这点的坐标是:6,6
    点到原点的距离是:8
    这点的坐标是:9,9
    点到原点的距离是:12
      

  2.   

    数组a什么逻辑操作也没有联结 自然是默认值0了System.out.println("点到原点的距离是:" + Math.sqrt(b[i]*b[i]+c[i]*c[i]));