Сделать не сложную прогу в СИ

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Creative10
Сообщения: 5
Зарегистрирован: 03 апр 2014, 02:23

Разработать и реализовать алгоритм,сравнивающий каждый элемент массива из 20 целых чисел с его правым соседом и меняющий их местами,если они не совпадают.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

А как понять какой элемент массива находится справа, а какой - слева?
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

То есть найти среди 20-ти элементов первый, не совпадающий со своим соседом, и бесконечно менять их местами? Нда. Это не называется "не сложной прогой", так как здесь даже приведение в порядок самого задания превосходит по сложности компиляторы.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Ребята, не мудрите. Задание более, чем чёткое. КАЖДЫЙ элемент сравнить в цикле с ПРЫВЫМ соседом и поменять, если они не равны.

Пишу на псевдоязыке, чтобы топик стартеру было чем заняться и подумать, при переводе на С++.

Код: Выделить всё


Массив Целых [1...N];

Считать(Массив);

Цикл i от 1 до N-1
{
   Если (Массив[i] != Массив[i+1])
   {
      Целое temp = Массив[i];
      Массив[i] = Массив[i+1];
      Массив[i+1] = temp;
   }
}
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

Romeo писал(а):Ребята, не мудрите. Задание более, чем чёткое. КАЖДЫЙ элемент сравнить в цикле с ПРЫВЫМ соседом и поменять, если они не равны.
То есть он становится на место правого соседа, а сосед на его и теперь уже правый сосед, ставший левым, опять не равен правому соседу, опять меняем их местами. Поэтому проще будет написать компилятор, чем добиться, нужна ли тебе сортировка и в каком порядке, или перемешивание. Как есть будет зависание.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Я вообще не понимаю, при чём тут компилятор, и как сложность его написания связана со сложностью написания этой элементарной задачи.

Предлагаю просто ещё раз поднять глаза к моему предыдущему посту, сделать над собой усилие, и наконец-то пробежаться глазами по псевдокоду. Никакого там зависания нет.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Так что же считать ПРАВЫМ соседом? У меня в памяти массив снизу вверх идет, это еще со времен программирования на Z80 пошло. Внизу ПЗУ, посредине видеопамять, выше - память программ. Где право? Где лево?
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

А нуль-терминальные строки у тебя тоже по-антияпонски располагаются? Чем больше индекс, тем правее.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

somewhere, не умножай сущности без надобности.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить