İşlev sonunda ne döndürmeli ve neden? Her sayı için eşleşme sayısı veya belirli bir maksimum sayı veya ... Bir şey yazdım , ama muhtemelen öyle değil, öyle değil mi?
Nasıl anlatacağımı bilmiyorum...
Bir dizi görüyoruz: 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3, Aynı sayıları aynı renkle işaretleriz (sayı tek bir kopyadaysa, bunun için çift yoktur - gerekli değildir): 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 ,3 Farklı renge sahip sayıları sayıyoruz: 3 - sonuç bu.
Bir dizi görüyoruz: 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3, Aynı sayıları aynı renkle işaretleriz (sayı tek bir kopyadaysa, bunun için çift yoktur - gerekli değildir): 12312122111333333333333 Farklı renge sahip sayıları sayıyoruz: 3 - sonuç bu.
Artyom Trishkin : İşte ... Ben biraz garipim ... Oradan aldım, ama başka bir yerden çıktı
genelleştirilmiş
// Возвращает количество различных элементов массива, которых не меньше Repeat template < typename T> int Strange( const T &InArray[], constint Repeat = 2 ) { int Res = 0 ;
T Array[];
constint Size = ArraySize (InArray);
if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array)) { int Tmp = 1 ;
for ( int i = 1 ; i < Size; i++, Tmp++) if (Array[i - 1 ] != Array[i]) // если будут структуры, то есть более универсальная запись { if (Tmp >= Repeat) Res++;
zaten kafam karıştı)
Bir diziniz var:
İşlev sonunda ne döndürmeli ve neden? Her sayı için eşleşme sayısı veya belirli bir maksimum sayı veya ... Bir şey yazdım , ama muhtemelen öyle değil, öyle değil mi?
Nasıl anlatacağımı bilmiyorum...
Bir dizi görüyoruz: 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3,
Aynı sayıları aynı renkle işaretleriz (sayı tek bir kopyadaysa, bunun için çift yoktur - gerekli değildir):
1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3
Farklı renge sahip sayıları sayıyoruz: 3 - sonuç bu.
Eski kodu kontrol ettiniz mi? Tekrar kontrol et .
Nasıl anlatacağımı bilmiyorum...
Bir dizi görüyoruz: 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3,
Aynı sayıları aynı renkle işaretleriz (sayı tek bir kopyadaysa, bunun için çift yoktur - gerekli değildir):
1 2 3 1 2 1 2 2 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3
Farklı renge sahip sayıları sayıyoruz: 3 - sonuç bu.
Belki)
{
int Arr[]={ 1 , 2 , 3 , 1 , 2 , 1 , 2 , 2 , 1 , 3 , 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 };
Comment ( GetM(Arr) );
}
int GetM( int &Mas[])
{
int MasTemp[][ 2 ]; // Временный массив
int c= 0 ,t= 0 ;
ArraySort (Mas);
int ArrSize= ArraySize (Mas);
for ( int i= 0 ; i<ArrSize; i++) {
for ( int x=i; x<ArrSize; x++) {
if (Mas[i]==Mas[ ArrayMinimum (Mas, WHOLE_ARRAY ,x)]) {
c++;
}
}
if (c> 0 ) {
t++;
ArrayResize (MasTemp,t);
MasTemp[t- 1 ][ 0 ]= c;
MasTemp[t- 1 ][ 1 ]= Mas[i];
}
c= 0 ;
}
int ArrRange= ArrayRange (MasTemp, 0 );
if (ArrRange> 0 ) {
ArraySort (MasTemp);
// Comment("Цифра: ",MasTemp[ArrRange-1][1],", Количество: ",MasTemp[ArrRange-1][0]);
return ( MasTemp[ArrRange- 1 ][ 1 ] );
}
return (- 1 );
}
İşte ... Ben biraz garipim ... Oradan aldım, ama başka bir yerden çıktı
template < typename T>
int Strange( const T &InArray[], const int Repeat = 2 )
{
int Res = 0 ;
T Array[];
const int Size = ArraySize (InArray);
if (( ArrayCopy (Array, InArray) == Size) && ArraySort (Array))
{
int Tmp = 1 ;
for ( int i = 1 ; i < Size; i++, Tmp++)
if (Array[i - 1 ] != Array[i]) // если будут структуры, то есть более универсальная запись
{
if (Tmp >= Repeat)
Res++;
Tmp = 0 ;
}
if (Tmp >= Repeat)
Res++;
}
return (Res);
}
void OnStart ()
{
int Array[] = { 1 , 2 , 2 , 3 , 3 , 3 , 4 , 4 , 4 , 4 };
for ( int i = 1 ; i <= 4 ; i++)
Print (Strange(Array, i));
}
genelleştirilmiş
Belki)
genelleştirilmiş
ilginç
Böyle bir gösterimle, Array yalnızca sayısal bir tür değil, aynı zamanda herhangi bir basit yapı olabilir.
Başka bir şey de, yapılar için ArraySort'un elbette çalışmamasıdır.
Böyle bir gösterimle, Array yalnızca sayısal bir tür değil, aynı zamanda herhangi bir basit yapı olabilir.
Başka bir şey de, yapılar için ArraySort'un elbette çalışmamasıdır.
İşte bu kadar ... Ve yapılar genellikle karmaşıktır. Ve hala sıralanmaları gerekiyor ...
Karmaşık olanlar nesneler içerir (örneğin dizeler).
MqlTick basit bir yapıdır.
MqlTradeRequest karmaşıktır.
ArraySort ve basit yapılar için yazmak kolaydır.