Сколько одинаковых значений в массиве

 

Здравствуйте! Имеется вопрос, как можно легко и просто определить, сколько одинаковых числе в массиве.

Вот додумался до такой конструкции:

   for(int i=0; i<=10; i++)
     {
      for(int j=i+1; j<=10; j++)
         if(comb[i]==comb[j])
           {
            
            if(f>=4)
              {
               SetArrow(163,clrLimeGreen,"",Time[i],Low[i]-0.0002,1);
               break;
              }
            f++;
           }
     }

Однако, как мне кажется, тут только соседние значения сравниваются. Или я гоню уже к вечеру. Заранее спасибо!

 
Evgeniy Zhdan:

Здравствуйте! Имеется вопрос, как можно легко и просто определить, сколько одинаковых числе в массиве.

Вот додумался до такой конструкции:

Однако, как мне кажется, тут только соседние значения сравниваются. Или я гоню уже к вечеру. Заранее спасибо!


На первый взгляд пропускаются сравнения нулевых элементов

for(int j=i+1; j<=10; j++)

Ну не выделяется полностью ццветом

Вот это j=i+1;

 
j=0;
Если представить массивы в виде вертикальных жердей, по одной мы двигаемся на шаг, а другую на каждом шаге пробегаем полностью. У тебя бег по второй с каждым шагом уменьшается
 
 for(int i=0; i<=10; i++)
      for(int j=i+1; j<=10; j++)
         if(comb[i]==comb[j])
            if(f>=4){SetArrow(163,clrLimeGreen,"",Time[i],Low[i]-0.0002,1);  break;}
            else f++;
  


верно, точно не соседние значения, до условия сравнения все ок, что дальше происходит не смотрел

if(comb[i]==comb[j])
 
Evgeniy Zhdan:

Здравствуйте! Имеется вопрос, как можно легко и просто определить, сколько одинаковых числе в массиве.

Вот додумался до такой конструкции:

Однако, как мне кажется, тут только соседние значения сравниваются. Или я гоню уже к вечеру. Заранее спасибо!

А что найти-то нужно? Например, есть массив

int comb[] = {100, 5, 100, 5, 100, 7, 5, 123, 123, 15, 16};

100 повторяется 3 раза, 5 повторяется 3 раза, 123 повторяется 2 раза. Вы ищите все повторения чисел представленных более одного раза, т.е. 8 ?
Или 3 числа представленных более одного раза (100, 5 и 123)?

 
Отсортируй массив и все повторения будут расположены последовательно, так их пересчитать проще и быстрей.
 
Ребята, всем спасибо!
 
Vasiliy Pushkaryov:

А что найти-то нужно? Например, есть массив

100 повторяется 3 раза, 5 повторяется 3 раза, 123 повторяется 2 раза. Вы ищите все повторения чисел представленных более одного раза, т.е. 8 ?
Или 3 числа представленных более одного раза (100, 5 и 123)?


Абсолютно любые значения. Главное найти любые одинаковые, в моем случае >=4
 
Alexey Volchanskiy:
Если представить массивы в виде вертикальных жердей, по одной мы двигаемся на шаг, а другую на каждом шаге пробегаем полностью. У тебя бег по второй с каждым шагом уменьшается

И точно. Сенькью вери мач