soluces/rust/semaine-5/two-steps-by-step/src/main.rs
2023-11-22 23:07:21 +01:00

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);
}