Reputation: 25
My goal is to print a chart that displays "enemy" number, x and y coordinates, then their distance in respect to the other "enemies", but with my following nested loop below, the enemy number, and coordinates are reversed with the distance numbers. I've tried adjusting the position of the codes, but they don't seem to fix the issue.
public static void main(String[] args) {
// array of enemy coordinates
int[] xCoords = {1, 4, 5, 5, 7, 10};
int[] yCoords = {3, 4, 6, 2, 5, 2};
System.out.println("________Enemy Distance Chart________");
System.out.println("\t\t\t\t\t\tDistance To (Kilometers)");
System.out.println("Enemies\t X Coord \tY Coord \tE-0\tE-1\tE-2\tE-3\tE-4\tE-5");
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
double distance = Math.sqrt((yCoords[j]-yCoords[i])*(yCoords[j]-yCoords[i]) + (xCoords[j]-xCoords[i])*(xCoords[j]-xCoords[i]));
System.out.printf("%.2f\t", distance);
}
// the following code below is somehow printed on the far right
System.out.println("E- " + i + "\t\t " + xCoords[i] + "\t " + yCoords[i]);
}
Upvotes: 1
Views: 237
Reputation: 12502
for (int i = 0; i < 6; i++) {
System.out.printf("E-" + i + "\t\t" + xCoords[i] + "\t\t" + yCoords[i] + "\t\t");
for (int j = 0; j < 6; j++) {
double distance = Math.sqrt((yCoords[j] - yCoords[i]) * (yCoords[j] - yCoords[i]) + (xCoords[j] - xCoords[i]) * (xCoords[j] - xCoords[i]));
System.out.printf("%.2f\t", distance);
}
System.out.println();
}
Upvotes: 1