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;
}
}
}
}
为什么这个程序输出来的点到原点的距离都是零?应该怎样改?
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;
}
}
}
}
为什么这个程序输出来的点到原点的距离都是零?应该怎样改?
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