From d343a3b18dbaca9297d4f7b2280c4a16f0a5c8aa Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Fri, 14 Jun 2024 13:13:15 -0600 Subject: initial --- avg_salary.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 avg_salary.c (limited to 'avg_salary.c') diff --git a/avg_salary.c b/avg_salary.c new file mode 100644 index 0000000..55009c6 --- /dev/null +++ b/avg_salary.c @@ -0,0 +1,29 @@ +// 1491. Average Salary Excluding the Minimum and Maximum Salary +#include +#include + +/* + * given an array of unique integers 'salary' where 'salary[i]' is the salaray + * of the i'th employee. return the average salary of employees excluding the + * minimum and maximum salary. answer within 10^-5 of actual answer + */ + +double average(int *salary, int salary_size) { + double max = DBL_MIN, min = DBL_MAX, sum = 0; + for (int i = 0; i < salary_size; i++) { + sum += salary[i]; + if (salary[i] < min) + min = salary[i]; + if (salary[i] > max) + max = salary[i]; + } + sum = sum - min - max; + return sum / (salary_size - 2); +} + +int main() { + int s1[] = {4000, 3000, 1000, 2000}; + int s2[] = {1000, 2000, 3000}; + printf("%f\n", average(s1, 4)); // expect: 2500.00000 + printf("%f\n", average(s2, 3)); // expect: 2000.00000 +} -- cgit v1.2.3