Помощ със задача Passengers Per Flight
Здравейте. Не мога да реша задачата Passengers Per Flight или Задача 6. Пътници на полет.
Условието е следното:
Напишете програма, която проследява колко пътници средно на полет има всяка авиокомпания. Всеки ден има определен брой авиокомпании, които имат полети. До получаване на команда "Finish" получавате брой пътници на полет. Трябва да изчислите средния брой пътници на полет на авиокомпания (закръглени към по-малкото цяло число).
Вход:
Първоначално от конзолата се прочита броя на авиокомпаниите – цяло число в интервала [1… 20]
След това за всяка авиокомпания се прочита:
- Името на авиокомпанията – текст
- До получаване на командата "Finish" се чете:
- Брой пътници на полет – цяло число в интервала [1... 360]
Изход:
След прочитането на всички пътници на дадена компания на конзолата се отпечатва един ред:
- "{името на авиокомпанията}: {средният брой пътници на полет} passengers."
След като излетят всички полети на всички авиокомпании се отпечатва един ред:
- "{името на авиокомпанията с най-много пътници на полет} has most passengers per flight: {среният брой пътници на полет}"
Примерен вход и изход:
Вход |
Изход |
Обяснения |
3 WizzAir 180 230 100 Finish BulgariaAir 50 60 90 Finish Lufthansa 260 320 Finish |
WizzAir: 170 passengers. BulgariaAir: 66 passengers. Lufthansa: 290 passengers. Lufthansa has most passengers per flight: 290 |
Днес полети имат 3 авиокомпании. Авиокомпания WizzAir има 3 полета – 180, 230 и 100 пътници – общо 510. Средно 170 пътници на полет. Авиокомпания BulgariaAir има 3 полета – 50, 60, 90 пътници – общо 200. Средно 66 пътници на полет. Авиокомпания Lufthansa има 2 полета – 260 и 320 пътници – общо 580. Средно 290 пътници на полет. Авиокомпания Lufthansa има най-много пътници средно на полет – 290. |
2 Qatar Airways 95 231 323 Finish LOT 76 89 55 Finish |
Qatar Airways: 216 passengers. LOT: 73 passengers. Qatar Airways has most passengers per flight: 216 |
|
Това е решението ми но с него не мога да стигна до никъде.
import java.util.Scanner; import java.util.WeakHashMap; public class taskSix { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int flights = Integer.parseInt(scanner.nextLine()); int totalPeople = 0; String companyName = ""; for (int i = 0; i < flights; i++) { String input = scanner.nextLine(); companyName = input; while (!input.equals("Finish")) { int people = Integer.parseInt(input); totalPeople += people; } System.out.println(companyName); System.out.println(totalPeople); input = scanner.nextLine(); } } }
Проблема според мен е, че когато програмат влезе в While цикъла чете само числа и след като се въведе Finish дава грешка. Благодаря.
Здравейте. Почти реших задачата но имам проблем с изписването на името на авиокомпанията която има най-много пътници. Вместо име излизча послднито въведено число. Благодаря за помощта.
Изнесете проверката от вътрешния цикъл:
3
WizzAir
180
230
100
Finish
BulgariaAir
50
60
90
Finish
Lufthansa
260
320
Finish
но при въвеждането на втория вместо Катар изписва Лот.
2
Qatar Airways
95
231
323
Finish
LOT
76
89
55
Finish
Колкото и да се опитвах не мога да успея да реша задачата. Благодаря.
Примерно решение: