Разделение чисел между двумя разными массивами в Java - PullRequest
0 голосов
/ 04 апреля 2020

Это мой первый пост. Заранее благодарим вас за понимание и помощь в этом топи c. Я пытаюсь разделить два числа между двумя разными массивами. Мои данные извлекаются из файла .txt. Мне дали имя, галлоны и мили. Я пытаюсь рассчитать MPG. Поэтому мне придется разделить галлоны [0] на мили [0], галлоны [1] на мили [1] и т. Д. c .... и отобразить это в списке в окне cmd. Ниже приведен код, который у меня есть до сих пор. Обратите внимание, что метод pseudo'd out внизу был тем, что я пробовал прежде, чем попробовал метод выше. Я заранее прошу прощения, если это было решено в предыдущем потоке.

import java.util.Scanner;
import java.io.*;
public class mpgHOmework2{
    public static void main(String[]args) throws IOException{

    File fn = new File("mpg.txt");
    Scanner inputFile = new Scanner(fn);

    Scanner keyboard = new Scanner(System.in);

    String[] names = new String[10];
    int[] miles = new int[10];
    int[] gallons = new int[10];
    double mpg;

    fillArray(inputFile,names,miles,gallons);

    displayArray(names,miles,gallons,mpg(miles,gallons));

    }//end main method
//==================================================================
    public static void fillArray(Scanner input,String[] arrIn, int[] arr1In, int[] arr2In){

        for(int indx = 0; indx < arrIn.length; indx++){
            arrIn[indx] = input.nextLine();
            if(arrIn[indx].length() == 0)arrIn[indx] = input.nextLine();
            arr1In[indx] = input.nextInt();
            arr2In[indx] = input.nextInt();}


    }//end fillArray method
//==================================================================
    public static void displayArray(String[] arrIn,int[] arr1In, int[]arr2In, double mpg){

        System.out.printf("%-18s   %5s    %7s   %3s\n","Names","Miles","Gallons","MPG");
        System.out.printf("%-18s   %5s    %7s   %3s\n","==================","=====","=======","===");
        for(int indx = 0; indx < arrIn.length; indx++)
            System.out.printf("%-18s   %5d   %7d  %.2f\n",arrIn[indx],arr1In[indx],arr2In[indx],mpg);

    }//end displayArray method
//==================================================================
    public static double mpg(Scanner input,String[] arrIn, int[] arr1In, int[] arr2In){

        for(int indx = 0; indx < arrIn.length; indx++){
            arrIn[indx] = input.nextLine();
            if(arrIn[indx].length() == 0)arrIn[indx] = input.nextLine();
            arr1In[indx] = input.nextInt();
            arr2In[indx] = input.nextInt();
        return = arr1In[indx]/arr2In[indx];}
}enter code here
/*  public static double mpg(int[] arrOneIn, int[] arrTwoIn){

        double retValue = 0.0;
            int a = 0;
            int b = 0;
            for (int i = 0; i < arrOneIn.length-1; i++){
                return [i] = arrOneIn[i] / arrTwoIn[i];
                }

            return a/b;
    }//end mpg method*/
}//end class

Это файл mpg.txt. Извините, я только что зарегистрировался 10 минут go и пока не знаю, как перемещаться по сайту.

John Murphy
1200  60
Katherine Cleary
1500 63
Isaac Fajerman
2600 87
Marsha Smiith
3500 100
Jason Meier
4100 196
Inna Johnson
750 34
Walter Philips
6900 265
Tracey Cannon
5024 187
Sheryl Rothman
6800 323
Jeff Gottlieb
450 18

Спасибо за ваше время.

-Rob

1 Ответ

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

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

И вам нужно привести один из массивов int[] к двойному, чтобы не отбрасывать дроби в процесс деления.


    public static double[] mpg(int[] arrOneIn, int[] arrTwoIn) {

        double[] retValues = new double[arrOneIn.length];
        for (int i = 0; i < arrOneIn.length; i++) {
            retValues[i] = (double) arrOneIn[i] / arrTwoIn[i];
        }
        return retValues;
    }
...