Que doit retourner la fonction et pourquoi ? Le nombre de correspondances pour chaque numéro, ou un nombre maximum spécifique, ou ... J'ai écrit quelque chose, mais ça doit être faux, et faux ?
Je ne sais pas comment expliquer...
Nous voyons un tableau :1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, Nous marquons les nombres identiques avec la même couleur (s'il n'y a qu'un seul nombre, il n'y a pas de doublon pour lui - il n'est pas nécessaire) : 1, 2, 3, 1, 2, 1,2,2, 1, 1,1,3, 3, 3,3,3,3, 3,3, 3, 3, 3, Comptez le nombre de nombres de couleurs différentes : 3 - voici le résultat.
Nous voyons un tableau :1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, On marque les nombres identiques avec la même couleur (s'il n'y a qu'un seul nombre, il n'y a pas de double pour lui - il n'est pas nécessaire) : 1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 3, 3,3,3,3, 3,3,3, 3, 3, 3, Comptez le nombre de nombres de couleurs différentes : 3 - voici le résultat.
Artyom Trishkin: Il y a... Je suis bizarre... Je pensais que ça venait de là, mais ça venait d'ailleurs.
Généralisé
// Возвращает количество различных элементов массива, которых не меньше 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++;
Je suis déjà confus)
Vous avez un tableau :
Que doit retourner la fonction et pourquoi ? Le nombre de correspondances pour chaque numéro, ou un nombre maximum spécifique, ou ... J'ai écrit quelque chose, mais ça doit être faux, et faux ?
Je ne sais pas comment expliquer...
Nous voyons un tableau :1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
Nous marquons les nombres identiques avec la même couleur (s'il n'y a qu'un seul nombre, il n'y a pas de doublon pour lui - il n'est pas nécessaire) :
1, 2, 3, 1, 2, 1 , 2 , 2, 1, 1 , 1 , 3, 3, 3 , 3 , 3 , 3 , 3,3, 3, 3, 3,
Comptez le nombre de nombres de couleurs différentes : 3 - voici le résultat.
Vous avez vérifié l'ancien code. Vérifiez-le deux fois.
Je ne sais pas comment expliquer...
Nous voyons un tableau :1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
On marque les nombres identiques avec la même couleur (s'il n'y a qu'un seul nombre, il n'y a pas de double pour lui - il n'est pas nécessaire) :
1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 1, 3 , 3, 3 , 3 , 3 , 3, 3 ,3, 3, 3, 3,
Comptez le nombre de nombres de couleurs différentes : 3 - voici le résultat.
Peut-être)
{
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);
}
Il y a... Je suis bizarre... Je pensais que ça venait de là, mais ça venait d'ailleurs.
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));
}
Résumé
Peut-être)
Résumés par
C'est intéressant
Avec cette notation, un tableau peut non seulement être un type numérique, mais aussi toute structure simple.
Une autre chose est que ArraySort pour les structures, bien sûr, ne fonctionne pas.
Avec cette notation, un tableau peut non seulement être un type numérique, mais aussi toute structure simple.
Une autre chose est que ArraySort pour les structures, bien sûr, ne fonctionne pas.
Exactement... Mais les structures sont généralement très complexes. Et ils doivent encore être triés...
Les complexes contiennent des objets (des chaînes de caractères, par exemple).
MqlTick est une structure simple.
MqlTradeRequest - complexe.
ArraySort peut facilement être écrit pour des structures simples.