Advertisement
kirill1920

embedded_system

Aug 8th, 2020
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.08 KB | None | 0 0
  1. #include <stdio.h>
  2. #include "stats.h"
  3.  
  4. /* Size of the Data Set */
  5. #define SIZE (40)
  6. unsigned char maximal, minimal, median, mean;
  7.  
  8. void print_statistics() {
  9.     printf("%c", maximal);
  10.     printf("%c", ' ');
  11.     printf("%c", minimal);
  12.     printf("%c", ' ');
  13.     printf("%c", median);
  14.     printf("%c", ' ');
  15.     printf("%c", mean);
  16. }
  17. void print_array(unsigned char data[]) {
  18.     for (int i = 0; i < SIZE; ++i) {
  19.         printf("%c", data[i]);
  20.         printf("%c", ' ');
  21.     }
  22. }
  23. unsigned char find_minimum(unsigned char data[]) {
  24.     unsigned char temp = data[0];
  25.     for (int i = 0; i < SIZE; ++i) {
  26.         if (temp > data[i]) {
  27.             temp = data[i];
  28.         }
  29.     }
  30.     return temp;
  31. }
  32. unsigned char find_maximum(unsigned char data[]) {
  33.     unsigned char temp = data[0];
  34.     for (int i = 0; i < SIZE; ++i) {
  35.         if (temp > data[i]) {
  36.             temp = data[i];
  37.         }
  38.     }
  39.     return temp;
  40. }
  41. unsigned char find_mean(unsigned char mass[]){
  42. unsigned char sum = 0;
  43. for(int i = 0; i< SIZE; ++i){
  44.     sum+=mass[i];
  45. }
  46. return sum/SIZE;
  47. }
  48. unsigned char find_median(unsigned char mass[]) {
  49.     unsigned char temp;
  50.     unsigned char i, j;
  51.     // the following two loops sort the array x in ascending order
  52.     for(i=0; i<SIZE-1; i++) {
  53.         for(j=i+1; j<SIZE; j++) {
  54.             if(mass[j] < mass[i]) {
  55.                 // swap elements
  56.                 temp = mass[i];
  57.                 mass[i] = mass[j];
  58.                 mass[j] = temp;
  59.             }
  60.         }
  61.     }
  62.     if(SIZE%2==0) {
  63.         // if there is an even number of elements, return mean of the two elements in the middle
  64.         return((mass[SIZE/2] + mass[SIZE/2 - 1]) / 2.0);
  65.     } else {
  66.         // else return the element in the middle
  67.         return mass[SIZE/2];
  68.     }
  69. }
  70. int main() {
  71.     unsigned char test[SIZE] = { 34, 201, 190, 154, 8, 194, 2, 6, 114, 88, 45,
  72.             76, 123, 87, 25, 23, 200, 122, 150, 90, 92, 87, 177, 244, 201, 6,
  73.             12, 60, 8, 2, 5, 67, 7, 87, 250, 230, 99, 3, 100, 90 };
  74.     maximal = find_maximum(test);
  75.     minimal = find_minimum(test);
  76.     mean = find_mean(test);
  77.     median = find_median(test);
  78.     print_statics();
  79.     return 0;
  80. }
  81. /* Add other Implementation File Code Here */
  82.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement