// Возвращает количество различных элементов массива, которых не меньше 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++;
我已经很困惑了)
你有一个数组。
该函数最终应该返回什么,为什么?每个数字的匹配数量,或一个特定的最大数量,或...我是不是写了 什么,但一定是错的,而且是错的?
我不知道该如何解释...
我们看到一个阵列。1,2,3,1,2,1,2,2,1,1,3,3,3,3,3,3,3,
我们用相同的颜色标记相同的数字(如果只有一个数字,就没有重复的数字--不需要)。
1,2,3,1,2 , 1 , 2 , 2 , 1 , 1 , 3 , 3 , 3 , 3 , 3 ,3,3, 3 ,3,3
数出不同颜色的数字的数量:3 - 这是结果。
你已经检查了旧的代码。仔细检查 一下。
我不知道该如何解释...
我们看到一个阵列。1,2,3,1,2,1,2,2,1,1,1,3,3,3,3,3,3,3,
我们用相同的颜色标记相同的数字(如果只有一个数字,就没有双数--不需要)。
1,2,3,1,2 , 1 , 2 , 2 , 1 , 1 , 3 , 3 , 3 , 3 ,3, 3 ,3, 3 ,3,3
数出不同颜色的数字的数量:3 - 这是结果。
也许吧)
{
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);
}
有...我是个怪人...我以为它来自那里,但它来自其他地方。
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));
}
总结
也许吧)
归纳如下
这很有意思
有了这个符号,数组不仅可以是一个数字类型,而且可以是任何简单的结构。
另一件事是,ArraySort对于结构来说,当然不起作用。
有了这个符号,数组不仅可以是一个数字类型,而且可以是任何简单的结构。
另一件事是,ArraySort对于结构来说,当然不起作用。
没错...但结构通常非常复杂。而且他们仍然要进行分类......
复杂的是包含对象(例如,字符串)。
MqlTick是一个简单的结构。
MqlTradeRequest- 复杂。
ArraySort可以很容易地为简单结构编写。