2017-02-23 41 views
-1

Вот код:Как сравнить элементы цикла?

public class JavaApplication3 { 
    public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.println("enter number of trains"); 
    int n = input.nextInt(); 
    int minmin; 
    for (int i = 0; i < n; i++) { 
     System.out.println("enter hour of arrival"); 
     int hour = input.nextInt(); 
     System.out.println("enter minute of arrival"); 
     int min = input.nextInt(); 
     System.out.println("how many minutes will it stay in the station?"); 
     int stay = input.nextInt(); 
     minmin = min + stay; 
    } 
    } 
} 

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

+0

Вам также понадобится массив для хранения деталей прибытия всех поездов, после чего вы сможете выполнять свои сравнения. Лучше вы создадите класс «TrainArrivalDetails», в котором участники данных тренируют часы прибытия, мин и мины пребывания. Затем сохраните массив объектов типа «TrainArrivalDetails». – Uday

+0

@Uday Но как я могу создать массив, в котором хранятся часы прибытия? Если я помещаю его в цикл for, он сохраняет один и тот же час n раз. – Chano

ответ

0

Вы можете создать еще один класс для хранения части поезда

class Train { 
    int hourOfArrival; 
    int minuteOfArrival; 
    int stay; 

    public Train(int hourOfArrival, int minuteOfArrival, int stay) { 
     this.hourOfArrival = hourOfArrival; 
     this.minuteOfArrival = minuteOfArrival; 
     this.stay = stay; 
    } 
} 

А затем создать массив для хранения их

public class Demo { 
    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 
     System.out.println("enter number of trains"); 
     int n = input.nextInt(); 
     int minmin; 
     Train[] trains = new Train[n]; 

     for (int i = 0; i < n; i++) { 
      System.out.println("enter hour of arrival"); 
      int hour = input.nextInt(); 
      System.out.println("enter minute of arrival"); 
      int min = input.nextInt(); 
      System.out.println("how many minutes will it stay in the station?"); 
      int stay = input.nextInt(); 
      trains[i] = new Train(hour, min, stay); 
      minmin = min + stay; // no idea what this does 
     } 
    } 
} 

Теперь запись Ith в поездах массива является поезд вы хотите

+0

И как это поможет мне сравнить свои часы с друг другу? В основном, что мне нужно сделать, проверьте час и минуту, когда они прибыли, а затем проверьте, как долго они останутся (поэтому я решил добавить количество минут, которые они оставят, с мин, которые они прибыли, так minmin), и определить, какие поезд уйдет быстрее. – Chano

0
class Train { 
    int hourOfArrival; 
    int minuteOfArrival; 
    int stay; 
    int hourOfDeparture; 
    int minuteOfDeparture; 
    // int order; 

    public Train(int hourOfArrival, int minuteOfArrival, int stay) { 
     this.hourOfArrival = hourOfArrival; 
     this.minuteOfArrival = minuteOfArrival; 
     this.stay = stay; 
     this.minuteOfDeparture = (minuteOfArrival + stay) % 60; 
     this.hourOfDeparture = hourOfArrival + ((minuteOfArrival + stay)/60); 
    } 
} 


public class Demo { 
    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 
     System.out.println("enter number of trains"); 
     int n = input.nextInt(); 
     Train[] trains = new Train[n]; 

     for (int i = 0; i < n; i++) { 
      System.out.println("enter hour of arrival"); 
      int hour = input.nextInt(); 
      System.out.println("enter minute of arrival"); 
      int min = input.nextInt(); 
      System.out.println("how many minutes will it stay in the station?"); 
      int stay = input.nextInt(); 
      trains[i] = new Train(hour, min, stay); 
      // your logic to compare the train departure time 
     } 
     // your logic to compare the train departure time 
    } 
} 

Я думаю, что приведенный выше код предоставит вам достаточно данных, чтобы сравнить время отправления каждого поезда и g et the train, который покинет платформу раньше или, может быть, вы сможете найти порядок, в котором они покидают платформу. Я оставил логин для сравнения времени вылета для вас. вы можете попробовать эту часть.;)

+0

Я понятия не имею, как их сравнить. Я попробовал сортировку по массиву Arrays.sort, но это не сработало. Я только начинаю, поэтому раньше я не работал с классами. Мне потребовалось 1 час, чтобы заставить его напечатать массив ... ха-ха, но я, наконец, сделал это. – Chano

Смежные вопросы