![]() |
затруднение при тестировании программы с массивами
Доброго времени суток всем! В работе с массивами возникла проблема - не получается выполнить эти проверки для программы:
Массив упорядочен по возрастанию Массив упорядочен по убыванию Массив имеет один глобальный минимум Массив имеет один глобальный максимум Массив имеет несколько глобальных максимумов Имеется "плоский" максимум (т.е. в максимуме 2 одинаковых элемента) Имеются локальные и глобальные максимумы Одно и тоже число входит и в "плоский" и в глобальный максимум Все остальные успешно прошли, поэтому в список не включены. В чём проблема, подскажите пожалуйста. Какой-то алгоритм действий, идея, способ реализации этих проверок. Заранее благодарю. Код:
#define _CRT_SECURE_NO_WARNINGS |
Цитата:
|
Цитата:
|
Александр34, расставьте, пожалуйста, поясняющие комментарии в существующем коде.
|
Цитата:
Т.е. массив может быть каким угодно, но если два последних соответствуют условию, то все нормально. Цитата:
По какому признаку должно произойти изменение флага, как условия выхода из цикла? Второй закомментированный блок непонятен. Почему-то взялась констана в 10, хотя ее раньше не было. И смысл проверки так же не ясен. Как указывал Iska, нужны ваши комментарии к коду. Ссылки, выделение массива в памяти ... кто вам все это рассказывал? т.е. как бы ... нафига? Не, можно конечно, но зачем? |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Вторгаясь в область памяти и твердо не зная, что при этом будет, может создать плохую привычку "копаться в памяти неумелыми руками", что может приводить к непредсказуемым последствиям. Не проще. Вот "ногу отстрелить", это запросто. Поэтому возьмите (http://cppstudio.com/post/389/ и https://code-live.ru/post/cpp-arrays/) и будет вам счастье. Работу с памятью возьмут на себя конструкции языка. Второе важное замечание. Пишите полные конструкции условий if и пр. Код:
if (условие) { Так вот нельзя. Писать строго всегда. ---- Отложите сейчас С++ и решите эту задачу на листе бумаги. Я серьезно. С++ -- дело десятое. Пока вы не поймете математику задачи, вы будете ходить кругами. Выпишите для себя 10 случайных массивов, сидите и выполняйте операции сравнения руками. Если что-то надо -- вводите дополнительные переменные, "флаги" и пр. Пусть будет много, не страшно, за то каждая будет отвечать ровно за свою сущность. Как поймете алгоритм, напишите его на псевдоязыке. Проверьте себя еще раз. И только потом (5ая очередь) приступайте к С++, отдавая предпочтение понятным для вас конструкциям. а книгу ту сожгите |
Цитата:
|
Время: 00:19. |
Время: 00:19.
© OSzone.net 2001-