|
0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
|
||||||
Поменять местами элементы массива, разные по знаку, но одинаковые по модулю04.11.2016, 18:04. Показов 1005. Ответов 14
Метки нет (Все метки)
Здравствуйте!
Помогите, пожалуйста с программой. Программа: Дан массив с целыми числами. Нужно найти одинаковые по модулю, но разные по знаку элементы массива и поменять их местами. Программу написал. Работает. Но! Некорректно работает, если массив состоит из нечётного количества элементов. Прилагаются скриншоты корректной и некорректной работы. Никак не могу понять, в чём моя ошибка. Корректно: Некорректно:
0
|
||||||
| 04.11.2016, 18:04 | |
|
Ответы с готовыми решениями:
14
Поменять местами равные по модулю, но противоположные по знаку элементы. Поменять местами наибольший и наименьший по модулю элементы массива Поменять местами первый и максимальный по модулю отрицательный элементы массива. |
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
|
||||||
| 04.11.2016, 18:31 | ||||||
|
31 строчка
0
|
||||||
|
0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
|
||
| 04.11.2016, 18:33 [ТС] | ||
|
Но это не изменяет результат работы программы.
0
|
||
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
|
||||||
| 04.11.2016, 18:41 | ||||||
|
тогда так
1
|
||||||
|
0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
|
|
| 04.11.2016, 18:51 [ТС] | |
|
Это работает! Спасибо большое!
*Только, конечно же, следует потом освободить память(это, если кто-то захочет кодом воспользоваться).
0
|
|
|
Любитель чаепитий
|
||||||
| 04.11.2016, 18:57 | ||||||
|
Не по теме: Когда создают указатель, а пишут, что это динамический массив, в мире грущу я. :resent: Лень было разбираться в коде, поэтому написал свой.
1
|
||||||
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
|
||||||
| 04.11.2016, 19:03 | ||||||
|
может добавить еще
1
|
||||||
|
0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
|
|
| 05.11.2016, 09:19 [ТС] | |
|
Подскажите, пожалуйста, где именно нужно фиксировать к-е число?
Локальный аргумент не передаётся(у меня не получается реализовать).
0
|
|
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
|
||||||
| 05.11.2016, 09:53 | ||||||
|
вот в этом куске кода добавляем priz[k]=1;
1
|
||||||
|
0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
|
|
| 05.11.2016, 09:57 [ТС] | |
|
Это я понял.
Но ведь условие (k=1) должно сохраняться там-же, где и priz[n]=0. *нужно, чтобы число с индексом k больше не менялось(как и число с индексом n), если уже произвели замену.
0
|
|
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
|
|||||||||||
| 05.11.2016, 10:01 | |||||||||||
|
и еще, в это условие попадают и просто равные элементы и не обязательно с разным знаком
"Но ведь условие (k=1) должно сохраняться там-же, где и priz[n]=0"
1
|
|||||||||||
|
0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
|
|
| 05.11.2016, 10:05 [ТС] | |
|
Да, я уже произвёл такие изменения. Спасибо.
Программа: Нулевой элемент сравнивается с последующими. Если находит число, удовлетворяющее условие, то меняет нулевой элемент с н-ым. Теперь будет проверяться 1 элемент с последующими. И так далее. Нужно "зафиксировать" оба числа, которые менялись местами. Надеюсь, я понятно объяснил.
0
|
|
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
|
||||||
| 05.11.2016, 10:13 | ||||||
|
когда вы находите два числа удовлетворяющие условие то меняете знаки и "фиксируете" оба эти числа чтобы в дальнейшем они не участвовали в сравнении
при этом в if достаточно мне кажется указать признак только текущего числа
0
|
||||||
|
0 / 0 / 1
Регистрация: 30.07.2012
Сообщений: 59
|
||
| 05.11.2016, 10:20 [ТС] | ||
|
Посмотрите пример: 1. Нулевой элемент сверяется с первым. Оба удовлетворяют условию и меняются местами. 2. Потом программа будет сравнивать первый элемент массива со 2 и 3. Первый меняется с третьим. *мы уже меняли местами первый элемент, поэтому его больше не нужно трогать Как это реализовать?
0
|
||
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
|
||||||
| 05.11.2016, 11:00 | ||||||
|
ну да в длинном массиве будет наложение, тогда вставить еще проверку
и еще добавить break чтобы после одной перестановки дальше сравнения не шли
0
|
||||||
| 05.11.2016, 11:00 | |
|
Помогаю со студенческими работами здесь
15
Поменять местами первый и максимальный по модулю отрицательный элементы массива
В матрице поменять местами максимальный по модулю и минимальный по модулю четные элементы Поменять местами в одномерном массиве противоположные по знаку элементы (например 7.5 и -7.5), с учетов перестановки каждого элемента не более одного Поменять местами максимальный и минимальный по модулю элементы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|