1

Пользователь вводит кол-во сотрудников.

Затем вводит их фамилии.

Затем зарплату каждого за 4 квартала(зарплата хранится в двумерном массиве[n][4], где n это кол-во сотрудников, а 4 это зарплата.

Необходимо найти сумму зарплаты за 4 квартала.

public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("Введите кол-во сотрудников: ");
        int n = in.nextInt();
        System.out.println("Введите фамилии сотрудников: ");
        String[] people = new String[n + 1];
        for (int i = 0; i < people.length; i++) {
            people[i] = in.nextLine();
        }
        int[][] money = new int[n][5];
        for (int i = 1; i < people.length; i++) {
            System.out.println("Введите зарплату" + people[i]);
            for (int j = 0; j < people.length; j++) {
                for (int k = 0; k < 4; k++) {
                    money[j][k] = in.nextInt();
                    money[j][4] = money[j][4] + money[j][j];
                    money[j][k] = in.nextInt();
                }
            }
        }
    }
}

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

Должно получиться как-то так: Должно получиться как-то так:

1 Answers1

1

Проблемы с вводом могут возникать из-за использования nextLine() / nextInt() вперемежку. Если принять, что фамилии не могут включать пробелы, то их можно считывать при помощи in.next().

Ошибки при расчёте суммы:

  • начинается индексация с 1 -- теряется первый сотрудник
  • не совсем понятно, зачем использовать тройной вложенный цикл и считывать ввод дважды money[j][k] = in.nextInt();
  • путаница с индексами: money[j][4] = money[j][4] + money[j][j]; -- должно быть + money[j][k].

Работающий вариант с расчётом поквартальных сумм:

Scanner in = new Scanner(System.in);
System.out.println("Введите кол-во сотрудников: ");
int n = in.nextInt();
System.out.println("Введите фамилии сотрудников: ");
String[] people = new String[n + 1];
for (int i = 0; i < n; i++) {
    people[i] = in.next();
}
people[n] = "Итого";
int[][] money = new int[n + 1][5];
int sum = 0;
for (int i = 0; i < n; i++) {
    System.out.println("Введите зарплату: " + people[i]);
    for (int k = 0; k < 4; k++) {
        money[i][k] = in.nextInt();
        money[i][4] += money[i][k];
        money[n][k] += money[i][k]; // поквартальная сумма
        money[n][4] += money[i][k];
        sum += money[i][k];
    }
}
for (int i = 0; i < people.length; i++) {
    System.out.printf("%-14s: ", people[i]);
    for (int j = 0; j < money[i].length; j++) {
        System.out.printf("%4d  ", money[i][j]);
}
System.out.println();

} System.out.println("Всего: " + sum);

Примерный вывод:

Введите кол-во сотрудников: 
3
Введите фамилии сотрудников: 
Иващук Петренко Сидоров
Введите зарплату: Иващук
12 13 14 15
Введите зарплату: Петренко
16 17 18 19
Введите зарплату: Сидоров
20 19 18 17
Иващук        :   12    13    14    15    54  
Петренко      :   16    17    18    19    70  
Сидоров       :   20    19    18    17    74  
Итого         :   48    49    50    51   198  
Всего: 198
Nowhere Man
  • 15,995
  • 33
  • 19
  • 29