下面的代码让我错误的解决问题的办法。我知道问题在于双倍距离设置为0.我不知道如何解决这个问题。我会喜欢任何解决方案,因为我已经呆了好几个小时了。我试过设置 公共静态双距离; 并移动公式一下。
我想把5个地方的坐标加在一起。
import java.util.Scanner;
class distance {
public static void main(String[] args) {
System.out.println("Welcome to Travel Bliss Distance Calculator!");
Scanner input = new Scanner(System.in);
int[] x = new int[5];
int[] y = new int[5];
String[] city = new String[5];
int i=0;
for (i=0; i < 5;){
System.out.println("Enter City>>");
city[i] = input.next();
System.out.println("Enter X Coordinates>>");
x[i] = input.nextInt();
System.out.println("Enter Y Coordinates>>");
y[i] = input.nextInt();
System.out.println("You Entered: " + city[i] + " with Coordinates: (" + x[i] + "," + y[i] + ") ");
i++;
}
System.out.println("============================================================");
System.out.println("Total Distance Between:" + city[0] +", " + city[1] + ", " + city[2] + ", " + city[3] + ", " + city[4]+" is>>");
System.out.println(totalDistance(x, y, i));
}
public static double totalDistance(int[] x, int[] y, int i){
double distance = 0;
if (i == 1){
double cordX = x[i] - x[i-1];
double cordY = y[i] - y[i-1];
distance = Math.pow(cordX , 2) + Math.pow(cordY, 2);
return distance;
}
else {
return Math.round(Math.sqrt(distance) + totalDistance(x,y,i-1));
}
}
}
这功课吗?请标记为这样。如果是这样,请解释您尝试过的以及您卡在哪里。你有没有在调试器中完成程序? – 2011-06-15 03:16:16
你的for循环是草率的:删除'int i = 0;'(for循环之前的行 - 这什么都不做)并且将'i ++'移动到'for(for i = 0; i <5; i ++)' – Bohemian 2011-06-15 03:25:14
您需要计算每个城市之间的距离还是两个终点城市之间的最终距离? – 2011-06-15 03:37:24