Задача. Во входном потоке следует заранее неизвестное количество строк, в каждой из которых указана фамилия и величина зарплаты одного из сотрудников. Вычислите величину средней по компании заработной платы.
Входные данные
Фамилия работника name и величина его зарплаты salary.
Выходные данные
Средняя зарплата по компании.
Тесты
Входные данные | Выходные данные | ||
name | salary | totalSalary/employeesNum | |
1. | Ivanov | 100 | 100 |
Ivanov | 300 | 200 | |
2. | Smirnov | 150 | 150 |
3. | Popov | 200 | 200 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import java.util.*; import java.lang.*; import java.io.*; import java.util.Scanner; class Ideone { public static void main (String[] args) throws java.lang.Exception { String name; double salary, totalSalary=0, employeesNum=0; Scanner in = new Scanner(System.in); while (in.hasNext()) { name = in.next(); salary = in.nextDouble(); totalSalary+=salary; employeesNum++; } System.out.println(totalSalary/employeesNum); } } |
Пояснение
С потока данных считывается первое значение и записывается в переменную name. Затем считывается заработная плата и записывается в переменную sal. В переменную total записывается общая полученная сумма работниками, увеличивается счетчик количества выплат sum. Средняя зарплата считается по формуле среднего арифметического: [latex]x = \frac{total}{sum}[/latex] и выводится потоком вывода.
Ссылка на код по тесту 1.