summaryrefslogtreecommitdiff
path: root/mathsssss/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mathsssss/src/main.rs')
-rw-r--r--mathsssss/src/main.rs61
1 files changed, 0 insertions, 61 deletions
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<i32>) -> f32 {
- let sum: i32 = numbers.iter().sum();
- sum as f32 / numbers.len() as f32
-}
-
-fn calc_median(numbers: &Vec<i32>) -> i32 {
- numbers[numbers.len() / 2]
-}
-
-fn calc_mode(numbers: &Vec<i32>) -> i32 {
- let mut counts: HashMap<i32, i32> = 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<i32> = 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);
-}