//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+enum EResult {Ok,AllocError};
template<typename T>
EResult GetRepeat(const T &arr[],T &ret[],uint count)
{
int size=ArraySize(arr); // Присваиваем переменной количество элементов массива arrif(ArrayResize(ret,size)!=size)
return AllocError;// Устанавливаем новый размер массиву ret, равный sizeint ii=0;
for(int i=0; i<size;)
{
T tmp=arr[i]; // переменная перегруженной функции с значениями массива arruint repeatCount=1; // будем считать одинаковые подряд значения массива arrwhile(++i<size&&arr[i]==tmp) // если следующее значение то же
++repeatCount; // плюсуем repeatCountif(repeatCount>=count)
ret[ii++]=tmp;
}
returnArrayResize(ret,ii)==ii?Ok:AllocError;// новый размер массива ret
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnStart()
{
int si=0;
int arr[]= {1,2,4,4,4,4,4,4,7,55,55,7,7,7,7,79,77,66,66,2,2,2,2,2};
int ret[];
if(!GetRepeat(arr,ret,cou))
si=ArraySize(ret);
for(int i=0; i<si; i++)
Print(si," ret[i] =",ret[i]);
}
//+------------------------------------------------------------------+
最好使用IsVisualMode而不是IsTesting。
你可以在没有IsVisualMode和IsTesting的情况下进行。
这个问题是关于其他方面的
关于magic=rand()
奇怪的是,当地的热心人并没有感叹 "Yobtv"...
既然你在这里学习编程,那就检查一下它需要多长时间来进行fackup。在或多或少的真实条件下,得到一个神奇的复制品的机会是什么? 它是否值得踩在这样的耙子上?
这也是可能的。匹配的机会很渺茫。
还有一个额外的检查是匹配的,所以它是OK的码头。
关于magic=rand()
奇怪的是,当地的热心人并没有感叹 "Yobtv"...
既然你在这里学习编程,那就检查一下它需要多长时间来进行fackup。在或多或少的真实条件下,得到一个神奇的复制品的机会是什么? 以及是否值得踩着这样的耙子?
来自参考资料:
"为了确保得到一个不重复的序列,使用MathSrand(GetTickCount()),因为 GetTickCount() 从操作系统开始就一直在递增,在49天内不会重复"
这样做
奇怪的是,当地的专家们并没有大喊:"Yobtv"......
没人愿意劝说,没人愿意争论,让他学习......他自己会明白的
关于magic=rand()
奇怪的是,当地的热心人并没有大喊 "Yobtv"......
///
鸭子,有多少次?
哦,这很有效,谢谢...ahahh,只是现在这个按钮让我每一次打钩都要开150个订单,没有停止过......这样做
这样做
脚本来自这个主题。
我不明白这句话。
if(!GetRepeat(arr,ret,cou))
为什么用"!"?为什么选择枚举型?
我不知道为什么这样做,但它本质上是一个布尔函数。
作者肯定想到了这样的事情。
在枚举中,元素以零开始:Ok=0,AllocError=1
也就是说,GetRepeat返回0或1。
而在cp中:0为假,1为真。
分别是 !GetRepeat是对返回值的否定
这是一个令人头疼的问题,因为要不乱自己和别人的脑子是很容易的。