Составить программу для расчета общей зарплаты, полученной за год человеком, информация о з/п которого - в массиве - C (СИ)
Формулировка задачи:
В двумерном массиве хранится информация „о зарплате 20 человек за каждый месяц года (первого человека — в первой строке, второго — во второй и т. д.). Составить программу для расчета общей зарплаты, полученной за год любым человеком, информация о зарплате которого представлена в массиве.
надо в С,а не в C++
Решение задачи: «Составить программу для расчета общей зарплаты, полученной за год человеком, информация о з/п которого - в массиве»
textual
Листинг программы
#include <stdio.h> #include <stdbool.h> #define EMPLOYEES 20 // зарплату надо хранить в копейках/центах во избежание известных проблем с машинной арифметикой unsigned long salaries[EMPLOYEES][12]; void fill() { srand(time(NULL)); for( int i = 0; i < EMPLOYEES; ++i ) { for( int j = 0; j < 12; ++j ) { salaries[i][j] = 100000 + rand(); // зарплата от 1000.00 до 1327.68 в месяц } } } double get_year_salary(int employee) { --employee; unsigned long salary = 0; for( int i = 0; i < 12; ++i ) { salary += salaries[employee][i]; } return (double)salary / 100.0; } int main() { fill(); char buf[3]; // буфер для хранения двузначного числа и нуль-терминатора int employee; while( true ) { puts("Input employee number or press ENTER to exit."); fflush(stdin); fgets(buf, sizeof(buf), stdin); if( buf[0] == '\n' ) break; employee = atoi(buf); if( employee >= 1 && employee <= EMPLOYEES ) { printf("Year salary for employee No.%d: %.2f dollars\n", employee, get_year_salary(employee)); } else { printf("Employees have numbers from 1 to %d\n", EMPLOYEES); } } return 0; }
Объяснение кода листинга программы
- Объединение
и в начале кода для использования функций вывода и булевых значений. - Определение константы EMPLOYEES, которая задает количество сотрудников (20).
- Создание двумерного массива salaries для хранения зарплаты каждого сотрудника в каждом месяце.
- Функция fill() используется для заполнения массива salaries случайными значениями зарплаты от 1000.00 до 1327.68 в месяц.
- Функция get_year_salary(int employee) используется для расчета годовой зарплаты сотрудника по его номеру.
- В цикле while в функции main() пользователю предлагается ввести номер сотрудника или нажать Enter для выхода.
- Если пользователь вводит номер сотрудника в допустимом диапазоне (1-20), выводится годовая зарплата этого сотрудника.
- Если пользователь вводит недействительный номер сотрудника, выводится сообщение об ошибке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д