fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. auto findMode(int array[], const int size){
  5.  
  6. int count = 1; //initializes the count
  7. int freq[size]; //declares array to store the counts of each element in original array
  8. freq[0] = count; //sets first element in frequency array to count
  9.  
  10. for (int pass = 1; pass < size; pass++){ //populates frequency array
  11. if( array[pass] == array[pass-1] ){
  12. count++;
  13. freq[pass] = count;
  14. }
  15. else{
  16. count = 1;
  17. freq[pass] = count;
  18. }
  19. }
  20.  
  21. int max = 0;
  22.  
  23. for(int i = 0; i < size; i++){ //finds maximum value in frequency array
  24. if(freq[i] > max)
  25. max = freq[i];
  26. }
  27.  
  28. std::vector<int> md;
  29. int mode;
  30.  
  31. for(int a = 0; a < size; a++){ //finds value(s) in original array that correspond to maximum frequency, which will be the mode(s)
  32. if (freq[a] == max){
  33. mode = array[a];
  34. md.push_back(mode); //pushes modes into vector
  35. }
  36. }
  37.  
  38. return md; //returns vector
  39. }
  40.  
  41. int main(){
  42. const int size = 9;
  43. int array[size] = {1, 2, 2, 4, 4, 4, 5, 5, 5};
  44.  
  45. for (const auto e : findMode(array, size)) {
  46. std::cout << e << std::endl;
  47. }
  48. }
Success #stdin #stdout 0s 16064KB
stdin
Standard input is empty
stdout
4
5