From 67cdcc2e12118becb823e20a40cc2687f2b8425a Mon Sep 17 00:00:00 2001 From: Adam Carpenter <53hornet@gmail.com> Date: Wed, 27 Mar 2019 15:32:37 -0400 Subject: Started Rust in Action MEAP. --- mathsssss/src/main.rs | 61 --------------------------------------------------- 1 file changed, 61 deletions(-) delete mode 100644 mathsssss/src/main.rs (limited to 'mathsssss/src/main.rs') diff --git a/mathsssss/src/main.rs b/mathsssss/src/main.rs deleted file mode 100644 index 991590b..0000000 --- a/mathsssss/src/main.rs +++ /dev/null @@ -1,61 +0,0 @@ -use std::env; -use std::collections::HashMap; - -fn calc_mean(numbers: &Vec) -> f32 { - let sum: i32 = numbers.iter().sum(); - sum as f32 / numbers.len() as f32 -} - -fn calc_median(numbers: &Vec) -> i32 { - numbers[numbers.len() / 2] -} - -fn calc_mode(numbers: &Vec) -> i32 { - let mut counts: HashMap = HashMap::new(); - - for each in numbers { - let count = counts.entry(*each).or_insert(0); - *count += 1; - } - - let mut most: i32 = 0; - let mut result: i32 = 0; - - for (key, val) in counts.iter() { - - if val > &most { - most = *val; - result = *key; - } - } - - if most <= 1 { - 0 - } - else { - result - } - -} - -fn main() { - // grab numbers - let mut numbers: Vec = Vec::new(); - - for arg in env::args().skip(1) { - let number: i32 = arg.trim().parse() - .expect("error: could not parse arg"); - numbers.push(number); - } - - // sort list (mostly for median) - numbers.sort_by(|a, b| a.partial_cmp(b).unwrap()); - - // calculate and print results - let mean: f32 = calc_mean(&numbers); - println!("mean: {}", mean); - let median: i32 = calc_median(&numbers); - println!("median: {}", median); - let mode: i32 = calc_mode(&numbers); - println!("mode: {}", mode); -} -- cgit v1.2.3