Un peu retravaillé, maintenant do while au lieu de la boucle for principale, mais toujours pas d'occurrence de la première condition dans la deuxième boucle imbriquée !
int GetMagic(Order &order)
{
int magic = 0;
int unique = 0;
if(order.cmd == OP_SELLSTOP || order.cmd == OP_BUYSTOP){
if(OrdersTotal()){
do{
magic++;
for(int i = OrdersTotal(); i > 0 ; i --){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
Print( "!!!!!!!!!!!!!!!!!!!");//<----------НЕ ПРИНТУЕТСЯif(magic != OrderMagicNumber())
unique ++;
}
}
}while(unique < OrdersTotal());
}elsereturn (magic + 1);
}
return magic;
}
Oui ! Ça marche ! Mais pourquoi plus tôt encore, la deuxième boucle for est entrée et si j'insère la ligne suivante Print() - elle sera exécutée (infiniment) mais n'ira pas plus loin ? En tout cas, merci, maintenant je peux au moins aller dormir.
Vraiment ? !))
L'avez-vous essayé ?
J'ai un changement de couleur qui fonctionne de cette façon depuis longtemps, mais pas sur la ligne, bien que cela ne devrait faire aucune différence.
PS. J'ai regardé mon autre code, il change la couleur de la ligne ici.
J'ai un changement de couleur qui fonctionne de cette façon depuis longtemps, mais pas sur la ligne, bien que cela ne devrait faire aucune différence.
PS. J'ai regardé mon autre code, il change la couleur de la ligne.
Modifie la ligne entière, pas la section désirée
Change toute la ligne, pas la section de droite
Eh bien, il a écrit que vous devez changer la ligne entière
Donc, j'ai adapté le code pour le test, essayez de l'exécuter et vous obtenez une boucle infinie sur le second ordre :(
Je m'interroge ! Pourquoi ?
Pourquoi cela, quel sens sacré cela a-t-il ?
---
Vous cherchez par numéro, alors cherchez par numéro.
Si vous avez 2 mandats, il les passera en revue, mais il ne trouvera pas le 3ème, ou le 23ème.
---
Vous n'avez pas l'air d'avoir bien compris la tâche à accomplir, c'est donc la solution.
la boucle n'est pas réglée correctement :
ça devrait être comme ça :
la boucle n'est pas réglée correctement :
ça devrait être comme ça :
Je m'interroge ! Pourquoi ?
Pourquoi cela, quel sens sacré cela a-t-il ?
---
Vous cherchez par numéro, alors cherchez par numéro.
Si vous avez 2 mandats, il les passera en revue, mais il ne trouvera pas le 3ème, ou le 23ème.
---
Vous n'avez pas l'air d'avoir bien compris la tâche à accomplir, c'est donc la solution.
la boucle n'est pas réglée correctement :
ça devrait être comme ça :
Quelle est la différence ? Et la numérotation des ordres ne part-elle pas de zéro plutôt que de un ?