Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


массив переменного размера, так называемый динамический берётся из свободной памяти:
Код: Выделить весь код
   int size1 = 10;
   int* array1 = new int[size1];

...

  delete[] array1;
усовершенствовать алгоритм поиска мин/макс дальше сложно. Можно только сделать его более универсальным, не теряя производительности:
Код: Выделить весь код
// возвращает указатель на минимальный элемент или на конец массива (если он пустой)
int* find_min(int* first, int* last)
{
  int* result = first;
  if (first!=last)
  {
      while(++first!=last) if (*first<*result) result=first;
  }
  return result;
}

...

// вообще бы надо проверить, что size1>0
  int* min1 = find_min(array1, array1+size1);
  print("found minimum %d at position %d\n", *min1, ((unsigned)min1-(unsigned)array1)/sizeof(int));

// минимум среди первых 10:
  int* min1 = find_min(array1, array1+min(size1,10));
  print("found minimum %d at position %d\n", *min1, ((unsigned)min1-(unsigned)array1)/sizeof(int));

Отправлено: 20:48, 26-02-2007 | #10