Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::env;
- use std::collections::HashMap;
- fn main() {
- // Numbers to place in the vector will be passed
- // in via command line arguments.
- let args: Vec<String> = env::args().collect();
- let mut numbers: Vec<i32> = Vec::new();
- // Parse out the valid integers sent in via the command line.
- // Excludes the first argument (0) because that's just the name
- // of the program.
- for string in &args[1..] {
- match string.trim().parse::<i32>() {
- Ok(value) => numbers.push(value),
- Err(_) => {},
- }
- }
- // Enforce a sorted vector.
- numbers.sort();
- println!("Mean: {}", mean(&numbers));
- println!("Median: {}", median(&numbers));
- println!("Mode: {}", mode(&numbers));
- println!("{:?}", numbers);
- }
- fn mean(numbers: &Vec<i32>) -> i32 {
- if numbers.len() == 0 {
- return 0
- }
- let mut sum = 0;
- for &number in numbers {
- sum += number;
- }
- sum / numbers.len() as i32
- }
- fn median(numbers: &Vec<i32>) -> i32 {
- numbers[numbers.len() / 2]
- }
- fn mode(integers: &Vec<i32>) -> i32 {
- let mut numbers = HashMap::new();
- for integer in integers {
- let count = numbers.entry(integer).or_insert(0);
- *count += 1;
- }
- let mut mode = 0;
- let mut most_occurrences = 0;
- for (number, quantity) in numbers {
- if quantity > most_occurrences {
- most_occurrences = quantity;
- mode = *number;
- }
- }
- mode
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement