Java中一维数组的平均长度
我是新的网站和编程的一般,所以请容忍我 我的计划必须符合以下标准:Java中一维数组的平均长度,java,arrays,average,Java,Arrays,Average,我是新的网站和编程的一般,所以请容忍我 我的计划必须符合以下标准: 读取一个正整数n,后跟n点的(x,y)坐标,将这些值存储在一个名为点的二维数组中,该数组包含n行和两列 创建一个二维数组,其中包含名为距离的n行和n列,距离[i][j]=从点[i]到点[j]的距离 创建长度n命名平均值的一维数组,平均值[i]=行的平均值i距离 确定并打印n点中平均距离最小的点 第三部分我似乎被难住了,我该如何计算行的平均距离 这是我迄今为止的代码,如果有人能帮我完成,我将不胜感激。同时指出我的错误 import
n
,后跟n
点的(x,y
)坐标,将这些值存储在一个名为点的二维数组中,该数组包含n
行和两列n
行和n
列,距离[i][j]=从点[i]到点[j]的距离n
命名平均值的一维数组,平均值[i]=行的平均值i
距离n
点中平均距离最小的点import java.util.Scanner;
public class Java
{
public static void main( String[] args )
{
Scanner input = new Scanner(System.in );
System.out.print("How many points: ");
int n = input.nextInt();
double[][] points = new double[n][2];
for(int i = 0; i < n; i++)
{
//prompt or and get coordinates
//points[i][0] = input.nextDouble();
//points[i][1] = input.nextDouble();
}
double[][] distances = new double[n][n];
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
distances[i][j] = distance(points[i], points[j]);
double[] averages = new double[n];
for(int i = 0; i < n; i++)
averages[i] = average( distances[i] );
int which_one = minimum_location( averages );
System.out.printf("Point # %d has a smallest average of %f\n", which_one,
averages[which_one]);
}
public static double distance
(double x1, double y1, double x2, double y2)
{
return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
{
public static double average( double[] x);
//problem area
}
{
public static int minimum_location( double[] x );
if (shortestDistance > distance);
{
p1 = i;
p2 = j;
shortestDistance = distance;
}
}
import java.util.Scanner;
公共类Java
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
系统输出打印(“多少点:”);
int n=input.nextInt();
双精度[][]点=新双精度[n][2];
对于(int i=0;i距离);
{
p1=i;
p2=j;
最短距离=距离;
}
}
这应该可以做到:
public static double average(double[] x)
{
double avg = 0;
for (double d: x)
avg += d;
avg /= x.length;
return avg;
}
#3要求avg[i]是距离[i][0]…距离[i][n]的平均值。这与要求1d数组的平均值相同,因为第一项对于计算的每个平均值都是常量。