RUST 给定一组整数,使用动态数组来计算该组整数中的平均数、中位数、及众数
RUST参考相对较少,希望能给大家一些参考
哈希映射解决求众数问题
use std :: collections::HashMap;
fn main()
{
let a =[100, 23, 23, 898, 99,88,23,23];
//average
let ave= a.iter().sum::<i32>() as f32;
let count =a.len() ;
println!("the average is {}", ave/count as f32);
//midd
let mut sorted1 = a.clone();
sorted1.sort();
if count%2==0
{
let center2 = (count)/2;
let mu: f32 =(sorted1[center2]+sorted1[center2-1])as f32/2.0;
println!("the midd is {}",mu);
}
else
{
let center1 = (count-1)/2;
println!("the midd is {}",sorted1[center1]);
}
//most
let mut map = HashMap :: new();
for element in a.iter(){
let most2 = map.entry(element).or_insert(0);
*most2 +=1;
}
//println!("{:?}",map);
let mut maxkey: i32 =0;
let mut maxvaule: i32= 0 ;
for (key,vaule) in map.iter(){
//println!("{},{}",key,vaule);
if maxvaule < *vaule
{
maxkey = **key;
maxvaule = *vaule;
}
}
println!("most value is {}",maxkey);
}