[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 370

 

下午好!

你能不能给我一个提示,请.....

Indic_mas[]//主阵列

Indic_mas_copi[]//数组,主数组被复制到其中。

n //Indic_mas_copi[]中的元素数量。

1.Indic_mas_copi[n]=0这个条目是否意味着我们已经将数组的 所有元素 清零?

2.在执行某些操作后,数组Indic_mas_copi[]的某些元素的值发生了变化。

下一次迭代重复将Indic_mas[]复制到Indic_mas_copi[]。

在这个复制之前,Indic_mas_copi[]是否需要被清零(或清空)?

还是Indic_mas[]的元素会自动取代Indic_mas_copi[]的先前元素?

 
LOA:

下午好!

你能不能给我一个提示,请.....

Indic_mas[]//主阵列

Indic_mas_copi[]//数组,主数组被复制到其中。

n //Indic_mas_copi[]中的元素数量。

1.Indic_mas_copi[n]=0这个条目是否意味着我们已经将数组的所有元素清零?

2.在执行某些操作后,数组Indic_mas_copi[]的某些元素的值发生了变化。

下一次迭代重复将Indic_mas[]复制到Indic_mas_copi[]。

在这个复制之前,Indic_mas_copi[]是否需要被清零(或清空)?

还是Indic_mas[]元素会自动取代之前的Indic_mas_copi[]元素?


1.如果n是Indic_mas_copi[]中的元素数,那么写Indic_mas_copi[n]是不正确的,因为你在这个条目中走出了数组。不要忘记,阵列单元的编号是从零单元开始的。因此,你可以寻址的数组的最后一个单元格的数量是n-1

2.将被替换。用脚本检查这一点。

 
drknn:


1.如果n是Indic_mas_copi[]中的元素数,那么写Indic_mas_copi[n]是不正确的,因为你在这个条目中走出了数组。不要忘记,阵列单元的编号是从零单元开始的。这就是为什么要寻址的最后一个数组单元的编号是n-1。

2.会有替代者。用脚本检查。


非常感谢你,弗拉基米尔!

那么为了使数组中的元素 归零,你需要以下的方法?

double i;
for (i=n-1;i>=0;i--)Indic_mas_copi[i]=0; 
 
LOA:


非常感谢你,弗拉基米尔!

那么为了使数组中的元素归零,你需要以下的方法?


不--这太复杂了。有一个更简单的方法。

阵列初始化(ArrayInitialize) 双倍数&array[], 双倍数值)
将一个数字数组的所有元素设置为相同的值。返回初始化元素的数量。

在括号中指定数组的名称,并将0作为第二个参数。这将导致数组的 所有元素 都被清零。

 
LOA:


非常感谢你,弗拉基米尔!

那么为了使数组中的元素归零,你需要以下的方法?

ArrayInitialize(Array_Name,0)。
 
О...弗拉基米尔击败了我...:)
 
artmedia70:
ArrayInitialize(Array_Name,0)。

这样更好:https://docs.mql4.com/ru/array/ArrayInitialize- 有一个具体的代码例子
 
drknn:


不--这太复杂了。有一个更简单的方法。

阵列初始化(ArrayInitialize) 双倍数&array[], 双倍数值)
将一个数字数组的所有元素设置为相同的值。返回初始化元素的数量。

在括号中指定数组名称,并将零作为第二个参数。因此,数组的所有元素都将被清零。


谢谢你。这样做真的比较容易。

那么这个循环可以在我们需要将一些元素归零的情况下使用?

或者说,通过一个单一的元素。

 
LOA:

下午好!

你能不能给我一个提示,请.....

Indic_mas[]//主阵列

Indic_mas_copi[]//数组,主数组被复制到其中。

n //Indic_mas_copi[]中的元素数量。

1.Indic_mas_copi[n]=0这个条目是否意味着我们已经将数组的所有元素清零?

2.在执行某些操作后,数组Indic_mas_copi[]的某些元素的值发生了变化。

下一次迭代重复将Indic_mas[]复制到Indic_mas_copi[]。

在这个复制之前,Indic_mas_copi[]是否需要被清零(或清空)?

还是Indic_mas[]元素会自动取代之前的Indic_mas_copi[]元素?

不,你不必如此。 Indic_mas_copi[] 所有元素 将被从主 Indic_mas[] 数组中复制的元素所取代。
 
LOA:


谢谢你。这样做真的比较简单。

那么这个循环可以用在需要将一些元素清零的情况下?

或者说,通过一个元素。


当你想把一些元素归零或重新初始化时,可以使用一个循环。另一方面,一个循环会逐一通过它们。因此,在循环中,我们可以引入一条规则,对数组中需要的单元格进行排序。例如,我们只需要整理出负数并将其翻倍。因此,我们将在循环中写入以下内容

如果数组的当前单元格中的值小于0,那么它取数组中该单元格的值乘以2。否则,继续

P.S.

if(massiv[i]<0){
  massiv[i]=massiv[i]*2;
}
else{
  continue;
}
虽然从处理器的角度来看,如果我们提前知道我们需要翻倍的具体内容,那么应用加法比乘法更好--加法会花费更少的CPU时间。