# value reduction

12

hello,

if one function offers me values like 1,1,2,2,1,1,4,4,3 how i can bring them to 1,2,1,4,3.... plz help :)

11679

hello,

if one function offers me values like 1,1,2,2,1,1,4,4,3 how i can bring them to 1,2,1,4,3.... plz help :)

Different Array Number

Icham Aidibe, 2018.03.05 18:56

I would have do it so, it's not as nerdy as the above snippet, but it works well :

```#include <Arrays\ArrayInt.mqh> // Include lib
//
int MyArray[]={5,7,5,3,3,4,7,7,3,4,4,3};
//
int CountItem(int &Array[])
{
CArrayInt *TempArray=new CArrayInt(); CArrayInt *ItemsFound=new CArrayInt(); int value = 0;
TempArray.AssignArray(MyArray); TempArray.Sort();
for(int x=0;x<TempArray.Total();x++) { if(ItemsFound.Search(TempArray.At(x))<0) { ItemsFound.Add(TempArray.At(x)); ItemsFound.Sort(); } else { continue; } }
printf("*** Items found in array : %g",ItemsFound.Total()); value = ItemsFound.Total();
delete(TempArray); delete(ItemsFound);
return(value);
}
//
DifArrayNbr = CountItem(MyArray); // Function call
//+------------------------------------------------------------------+```

3285

if one function offers me values like 1,1,2,2,1,1,4,4,3 how i can bring them to 1,2,1,4,3.... plz help :)

I'm assuming from you example you want to suppress sequential duplicates. To do that, just use a hold value.

```        int value = 0;
int holdvalue = -1;
while ( true )
{
// The function gives the values in succession, e.g.
// 1,1,2,2,1,1,4,4,3, . . .
value = one_function();

// Always have a way to get out of an infinite loop
if ( value == -1 )
{
break;
}

// suppress inline duplicates
if ( value != holdvalue )
{
Print(StringFormat("one_function returned [%d]", value));
holdvalue = value;
}
}```