|
14 / 14 / 0
Регистрация: 01.12.2017
Сообщений: 577
|
|
Выполнить сортировку элементов последовательности по возрастанию06.03.2018, 19:54. Показов 2587. Ответов 37
Метки нет (Все метки)
Дано натуральное число N и одномерный массив A1, A2, ..., AN символьных элементов. Выполнить сортировку элементов последовательности по возрастанию.
Если нужно выполнить сортировку, то символы массива - числа, я правильно понимаю?
0
|
|
| 06.03.2018, 19:54 | |
|
Ответы с готовыми решениями:
37
|
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 19.03.2018, 13:02 | |
|
0
|
|
| 19.03.2018, 14:26 | |
|
1251 - 2 байта, а не один, а значит многобайтная, напрямую в wchar_t не закинуть, т.к. wchar_t подразумевает utf-16 или utf-32(в зависимости от реализации), но не мелкософтовый cp1251 (именно поэтому они сделали MultiByteToWideChar() - перекидывают свою cp1251(или что там, в зависимости от локали) в utf-fixed_size (utf-8 не фиксирован, может быть разной длины))
0
|
|
|
|
|||
| 19.03.2018, 14:36 | |||
|
0
|
|||
| 19.03.2018, 15:32 | ||
|
0
|
||
|
14 / 14 / 0
Регистрация: 01.12.2017
Сообщений: 577
|
|
| 19.03.2018, 16:11 [ТС] | |
|
Много заумных фраз и определений для начинающего. Я так и не понял что делать с моим кодом. Понятно дело, что нужно сортировать как unsigned char, но как это реализовать? Наброски есть(выше кидал).
0
|
|
| 19.03.2018, 16:23 | |
|
Для большинства простых сортировок необходимо 2 цикла, а не один: http://algolist.manual.ru/sort/bubble_sort.php
0
|
|
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
||||||
| 19.03.2018, 16:43 | ||||||
|
Teylor, я бы Ваш код подправил следующим образом:
0
|
||||||
|
14 / 14 / 0
Регистрация: 01.12.2017
Сообщений: 577
|
|
| 19.03.2018, 20:27 [ТС] | |
|
liv, нужно с указателями и динамическим массивом.
0
|
|
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
| 19.03.2018, 20:34 | |
|
Teylor, ну сделайте с указателями и динамическим массивом... Что мешает?
Сделайте, покажите, мы подправим, если что. Кстати, в условии об этом не сказано ни слова...
0
|
|
|
14 / 14 / 0
Регистрация: 01.12.2017
Сообщений: 577
|
||||||
| 19.03.2018, 20:40 [ТС] | ||||||
|
liv, уточняю в чем проблема: в уже отсортированном массиве выводит те же символы, что и до якобы сортировки. Нужно символы типа unsigned char преобразовать ascii коды и уже их сравнивать, верно? но как преобразовать unsigned char в ascii? На всякий случай, скину еще раз то, что есть.
0
|
||||||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
| 19.03.2018, 20:45 | |
|
Посмотрите, как у меня сделана сортировка (в два цикла).
Творчески переработайте. У себя посмотрите, зачем Вам массив bufMassiv? Добавлено через 1 минуту И ничего не надо преобразовывать. Просто берете элементы массива и сравниваете...
0
|
|
|
14 / 14 / 0
Регистрация: 01.12.2017
Сообщений: 577
|
||||||
| 20.03.2018, 17:08 [ТС] | ||||||
|
Вроде все уладил, кроме сортировки(переделанной), но теперь один символ как будто вылетает, т.к. вывод абсолютно не его. Почему так?
0
|
||||||
|
14 / 14 / 0
Регистрация: 01.12.2017
Сообщений: 577
|
||
| 20.03.2018, 17:34 [ТС] | ||
|
drfaust, если убрать *, то компилятор ругается, т.к. не int. Если убрать
0
|
||
| 20.03.2018, 17:56 | |||||||||||
Сообщение было отмечено Teylor как решение
Решение
Просто надо вычищать символьный буффер:
0
|
|||||||||||
|
14 / 14 / 0
Регистрация: 01.12.2017
Сообщений: 577
|
|
| 20.03.2018, 18:47 [ТС] | |
|
drfaust, а с какой целью его нужно вычищать?
0
|
|
| 20.03.2018, 21:07 | |
|
Потому что там висит "\r\n" (для DOS) или "\n"(для linux), которые были нажаты ранее (на scanf(размер массива) или что-то ещё), вот getchar его и ловит - для человека получается, что вводим не то что хотим. Если без него можно ввести сразу "10asdfghjkl; Enter" - тогда отработает нормально и без очистки буфера (10 возбмёт scanf, остальные символы getchar), но что если мы введём "10 0987654321"(без пробела) - тогда сканф попытается считать все цифры, что влезут в переменную(для long int вроде все втиснуться)
Добавлено через 2 минуты Методов море, но большинство работает в той или иной среде(что работает под виндой - fflush(stdin) может не работать под линухой). У этого метода тоже есть недостатки, если я хочу ввести символы подряд(без Ентер`ов между ними - он считает только первый символ - остальные "зачистит" цикл_getchar)
1
|
|
|
14 / 14 / 0
Регистрация: 01.12.2017
Сообщений: 577
|
||||||
| 20.03.2018, 22:37 [ТС] | ||||||
|
Спасибо всем, кто помогал.
Вот код рабочей проги, может кому-то пригодится
0
|
||||||
| 20.03.2018, 22:37 | |
|
Выполнить сортировку элементов главной диагонали массива по возрастанию и убыванию Выполнить сортировку элементов массива по возрастанию. Вывести новый массив на печать
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|