Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Миллиард задач уже выполнено в MQL5 Cloud Network. Тестируй роботов еще быстрее!
alexvor
328
alexvor 2007.03.24 23:28 
Подскажите пожайлуста как из массива убрать нулевые значения, чтобы получился новый массив уменьшенный на величину убранных нулей
Заранее благодарен !
timbo
3139
timbo 2007.03.24 23:48  
перебираешь все значения первого массива и сравниваешь каждое с 0, если не равно, то пихаешь его в новый массив.
alexvor
328
alexvor 2007.03.25 00:06  

так не получится поскольку пустые индексы копируются в новый массив

dmitry
31
dmitry 2007.03.25 02:44  
код покажи
timbo
3139
timbo 2007.03.25 03:48  
alex54:

так не получится поскольку пустые индексы копируются в новый массив

??? Что значит "копируются"? Сами? Может ты там случайно создал искусственный интеллект, который сам делает что за хочет?

Берешь из первого мешка, не глядя, яблоко
Смотришь хорошее оно или гнилое
Если хорошее, то кладешь его во второй мешок
Если гнилое, то выкидываешь
Повторить пока в первом мешке не останется яблок

А теперь объясните мне как могут гнилые яблока сами прыгать во второй мешок.
alexvor
328
alexvor 2007.03.25 07:32  

У меня получается только через два цикла А это громоздко Поэтому я поднял зту тему

и посколько конструктивных советов нет я эту веточку закрываю

Четно говоря я не вижу смысла обсуждать проблему с воробьиное яйцо

Dmitry Fedoseev
41218
Dmitry Fedoseev 2007.03.25 08:21  
alex54:

У меня получается только через два цикла А это громоздко Поэтому я поднял зту тему

и посколько конструктивных советов нет я эту веточку закрываю

Четно говоря я не вижу смысла обсуждать проблему с воробьиное яйцо


8-) Что вы называете конструктивным советом? Вам уже на детсадовском примере обяснили, а вы все недовольны. Лучше расскажите как вы умудряетесь делать это в два цикла.
Igor Kim
2766
Igor Kim 2007.03.25 08:37  
void start() {
  int a[5]={0, 1, 2, 3, 0};
  int b[], i, ra, rb;
 
  // удаление нулевых значений
  ra=ArraySize(a);
  for (i=0; i<ra; i++) {
    if (a[i]>0) {
      rb=ArraySize(b);
      ArrayResize(b, rb+1);
      b[rb]=a[i];
    }
  }
 
  // вывод нового массива для проверки
  rb=ArraySize(b);
  for (i=0; i<rb; i++) {
    Print("b[",i,"]=",b[i]);
  }
}
Савелий
3
Савелий 2013.06.27 13:28  
timbo:
??? Что значит "копируются"? Сами? Может ты там случайно создал искусственный интеллект, который сам делает что за хочет?

Берешь из первого мешка, не глядя, яблоко
Смотришь хорошее оно или гнилое
Если хорошее, то кладешь его во второй мешок
Если гнилое, то выкидываешь
Повторить пока в первом мешке не останется яблок

А теперь объясните мне как могут гнилые яблока сами прыгать во второй мешок.

Объясняю, не использованные числа типа Integer и Real по-умолчанию являются нулями....твой пример совсем не подходит...тут совсем другое

у тебя стоят 20 блюдец для чашек по 10 с каждой стороны стола...но все чашки  стоят не на каждом блюдечке и только на одной стороне...тебе надо переместить эти чашечки с блюдечек одной стороны на блюдечки другой...но при этом необходимо убрать лишние блюдца...
ПЫ.СЫ. чашки - числа, блюдца - нули...
Рустам
3604
Рустам 2013.06.27 13:37  
bloogman:

Объясняю, не использованные числа типа Integer и Real по-умолчанию являются нулями....твой пример совсем не подходит...тут совсем другое

у тебя стоят 20 блюдец для чашек по 10 с каждой стороны стола...но все чашки  стоят не на каждом блюдечке и только на одной стороне...тебе надо переместить эти чашечки с блюдечек одной стороны на блюдечки другой...но при этом необходимо убрать лишние блюдца...
ПЫ.СЫ. чашки - числа, блюдца - нули...

  Уважаемый, некропостинг без причины на этом форуме карается баном. Это так для информациию
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий