Скачать MetaTrader 5

Как из массива убрать нулевые значения?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
alexvor
328
alexvor  
Подскажите пожайлуста как из массива убрать нулевые значения, чтобы получился новый массив уменьшенный на величину убранных нулей
Заранее благодарен !
timbo
3139
timbo  
перебираешь все значения первого массива и сравниваешь каждое с 0, если не равно, то пихаешь его в новый массив.
alexvor
328
alexvor  

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

dmitry
31
dmitry  
код покажи
timbo
3139
timbo  
alex54:

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

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

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

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

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

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

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

Dmitry Fedoseev
43502
Dmitry Fedoseev  
alex54:

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

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

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


8-) Что вы называете конструктивным советом? Вам уже на детсадовском примере обяснили, а вы все недовольны. Лучше расскажите как вы умудряетесь делать это в два цикла.
Igor Kim
2740
Igor Kim  
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
Савелий  
timbo:
??? Что значит "копируются"? Сами? Может ты там случайно создал искусственный интеллект, который сам делает что за хочет?

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

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

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

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

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

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

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