Как мне найти, к какому индексу относится наибольшее число массива из другого массива? - PullRequest
0 голосов
/ 03 апреля 2020

Так что это код, который у меня сейчас есть. Прежде всего, я продолжаю сталкиваться с кодом выхода, когда он вычисляет среднее значение для всех значений. Я не знаю, почему это происходит, потому что раньше это работало нормально, и я редактировал его, чтобы вернуть его, как это было раньше, но я продолжаю получать код выхода.

После этого у меня проблема с отображением наибольшего значения в массиве, а также с отображением города, с которым он связан ... Если кто-нибудь может мне помочь, это было бы здорово!

public class Main {

  public static void main(String[] args) {

    System.out.println("- - - - - - - - - - - - - - - ");
    System.out.println("City\t\tPopulation\t\t\t");
    System.out.println("- - - - - - - - - - - - - - - ");

    int[] population = {
      693417,
      457502,
      109985,
      107360,
      103773,
      13145,
      5469
    };
    String[] cities = {
      "Denver",
      "Colo Springs",
      "Pueblo",
      "Boulder",
      "Greely",
      "Fruita",
      "Vail"
    };


    displayPopulations(population, cities);

    int[] total = computeTotalPopulation(population);
    for (int i = 0; i < total.length; i++);

    double[] average = computeAveragePopulation(population);
    for (int i = 0; i < average.length; i++);



  }


  public static void displayPopulations(int[] population, String[] cities) {

    System.out.println(cities[0] + "\t\t" + population[0]);
    System.out.println(cities[1] + "\t" + population[1]);
    System.out.println(cities[2] + "\t\t" + population[2]);
    System.out.println(cities[3] + "\t\t" + population[3]);
    System.out.println(cities[4] + "\t\t" + population[4]);
    System.out.println(cities[5] + "\t\t" + population[5] + "\n");
  }


  public static int[] computeTotalPopulation(int[] population) {

    int[] population2 = {
      693417,
      457502,
      109985,
      107360,
      103773,
      13145,
      5469
    };
    int sum = 0;
    for (int i = 0; i < population2.length; i++) {
      sum += population2[i];
    }

    System.out.println("Total population for all cities is: " + sum);
    return population2;

  }

  public static double[] computeAveragePopulation(int[] population) {

    double[] population3 = {
      693417,
      457502,
      109985,
      107360,
      103773,
      13145,
      5469
    };
    double sum = 0;
    for (int i = 0; i < population3.length; i++) {
      sum = sum + population3[i];
    }

    double averagePopulation = sum / population3.length;
    System.out.printf("Average population for all cities is: %.2f", averagePopulation + "\n");
    return population3;

  }
}

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Вот мой ответ. В этом коде вы должны знать, как использовать printf и void и некоторые шаблоны в java. Надеюсь, это поможет вам.

public static void main(String[] args) {

    System.out.println("- - - - - - - - - - - - - - - ");
    System.out.println("City\t\tPopulation\t\t\t");
    System.out.println("- - - - - - - - - - - - - - - ");

    int[] population = { 693417, 457502, 109985, 107360, 103773, 13145, 5469 };
    String[] cities = { "Denver", "Colo Springs", "Pueblo", "Boulder", "Greely", "Fruita", "Vail" };

    displayPopulations(population, cities);

    int total = computeTotalPopulation(population);

    double average = computeAveragePopulation(total,cities.length);

    System.out.print("Average "+average+" is the variable that have information for we to later use after this code");
}

Вы можете использовать l oop для печати элемента в массивах, также использовать printf (формат печати) для форматирования предложений и использовать ключевое слово void тогда нет необходимости возвращать вещи.

public static void displayPopulations(int[] population, String[] cities) {
    for(int i=0;i<population.length;i++)
        System.out.printf("%-15s %d\n",cities[i] , population[i]);
    System.out.println();
}

Вы можете вернуть значение для присвоения значения параметру для последующего использования.

public static int computeTotalPopulation(int[] population) {
    int sum = 0;
    for (int i = 0; i < population.length; i++) {
        sum += population[i];
    }

    System.out.println("Total population for all cities is: " + sum);
    return sum;

}

public static double computeAveragePopulation(int sumOfPopulation,int numOfCities) {

    double averagePopulation = sumOfPopulation / numOfCities;
    System.out.printf("Average population for all cities is: %2.2f", averagePopulation );
    return averagePopulation;

}
0 голосов
/ 03 апреля 2020

Вы должны вернуть int sum для метода computeTotalPopulation и удвоить averagePopulation для метода computeAveragePopulation вместо возврата массивов. Это самый дальний из моих намеков для вас, вам придется самим разобраться с остальными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...