Rust程序设计语言第八章课后习题
- 给定一系列数字,使用 vector 并返回这个列表的平均数(mean, average)、中位数(排列数组后位于中间的值)和众数(mode,出现次数最多的值;这里哈希函数会很有帮助)。
use std::collections::HashMap;
fn main() {
let mut nums: Vec<i32> = vec![23, 55, 55, 67, 45, 32, 54];
println!("{:?}", nums);
let nums = sort(&mut nums);
println!("{:?}", nums);
println!("average: {}", average(nums));
println!("median: {}", median(nums));
println!("mode: {}", mode(nums));
}
fn average(vec: &Vec<i32>) -> f32 {
let mut r = 0;
for num in vec.iter() {
r += num;
}
r as f32 / vec.len() as f32
}
fn median(vec: &mut Vec<i32>) -> f32 {
let len = vec.len();
let sorted = sort(vec);
if len % 2 == 0 {
return (sorted[len / 2 - 1] as f32 + sorted[len] as f32) / (2 as f3