Advertisement
sacr1ficerq

ГДЕ ОШИБКА *****

Sep 19th, 2022
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 1.03 KB | None | 0 0
  1. #![forbid(unsafe_code)]
  2.  
  3. #[derive(Debug, Eq, PartialEq)]
  4. pub struct Statistics {
  5.     pub average: i32,
  6.     pub median: i32,
  7.     pub min: i32,
  8.     pub max: i32,
  9. }
  10.  
  11. fn calculate_average(data: &Vec<i32>) -> i32 {
  12.     let mut sum = 0;
  13.     let mut cnt = 0;
  14.     for x in data {
  15.         sum += *x;
  16.         cnt += 1;
  17.     }
  18.     return sum / cnt;
  19. }
  20.  
  21. fn calculate_median(mut data: Vec<i32>) -> i32 {
  22.     data.sort();
  23.     return data[data.len() / 2];
  24. }
  25.  
  26. fn calculate_minmax(data: &Vec<i32>) -> (i32, i32) {
  27.     let mut min = data[0];
  28.     let mut max = data[0];
  29.     for x in data {
  30.         if min > *x {
  31.             min = *x;
  32.         }
  33.         if max < *x {
  34.             max = *x;
  35.         }
  36.     }
  37.     return (min, max);
  38. }
  39.  
  40. pub fn calculate_statistics(data: &Vec<i32>) -> Statistics {
  41.     let average = calculate_average(data);
  42.     let median = calculate_median(data.clone());
  43.     let (min, max) = calculate_minmax(data);
  44.  
  45.     return Statistics {
  46.         average,
  47.         median,
  48.         min,
  49.         max,
  50.     };
  51. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement