40 lines
923 B
Rust
40 lines
923 B
Rust
fn calculate_average(values: &Vec<i32>) -> f64 {
|
|
/*
|
|
Rust way
|
|
let sum: i32 = values.iter().sum();
|
|
*/
|
|
let mut sum = 0;
|
|
let count = values.len() as f64;
|
|
|
|
for x in values {
|
|
sum += x;
|
|
}
|
|
|
|
sum as f64 / count
|
|
}
|
|
|
|
fn main() {
|
|
let temperatures = [12, 13, 14, 15, 15, 12, 7];
|
|
|
|
let even_positions: Vec<i32> = temperatures
|
|
.iter()
|
|
.enumerate()
|
|
.filter(|(i, _)| i % 2 == 0)
|
|
.map(|(_, &temp)| temp)
|
|
.collect();
|
|
|
|
let odd_positions: Vec<i32> = temperatures
|
|
.iter()
|
|
.enumerate()
|
|
.filter(|(i, _)| i % 2 != 0)
|
|
.map(|(_, &temp)| temp)
|
|
.collect();
|
|
|
|
let average_even = calculate_average(&even_positions);
|
|
let average_odd = calculate_average(&odd_positions);
|
|
|
|
let result = average_even + average_odd;
|
|
let result = result.ceil() as i32;
|
|
|
|
println!("I lost 3 points on this lol: {}", result);
|
|
}
|