diff options
author | jack <[email protected]> | 2024-06-14 13:13:15 -0600 |
---|---|---|
committer | jack <[email protected]> | 2024-06-14 13:13:15 -0600 |
commit | d343a3b18dbaca9297d4f7b2280c4a16f0a5c8aa (patch) | |
tree | 96df922dae2a5073d9a50ea70c7aae6aa37e3ebe /avg_salary.c | |
download | leetcode-d343a3b18dbaca9297d4f7b2280c4a16f0a5c8aa.tar.gz leetcode-d343a3b18dbaca9297d4f7b2280c4a16f0a5c8aa.zip |
initial
Diffstat (limited to 'avg_salary.c')
-rw-r--r-- | avg_salary.c | 29 |
1 files changed, 29 insertions, 0 deletions
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 <float.h> +#include <stdio.h> + +/* + * 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 +} |