27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
1 | |
Программа для сортировки массива строк02.04.2014, 20:56. Показов 6179. Ответов 57
Метки нет (Все метки)
Нужно написать программу для сортировки строк, используя указатели.
Программа должна считать количество элементов массива (вот тут и возникла проблема) строк и сам массив. Сортированный вывести на экран. Нужно написать функцию сортировки массива строк, параметры какой -- массив указателей и количество элементов. =============================== Собственно суть проблемы в том, что при попытки сделать массив например char list[n][100]; (n - вводимое количество строк) -- выдает ошибку. Я так понимаю, n - должна быть const, а не переменной. Но как же тогда сделать вводимое значение количества строк?
0
|
02.04.2014, 20:56 | |
Ответы с готовыми решениями:
57
Пример быстрой сортировки массива строк и сортировки методом выбора Не работает программа для сортировки массива строк Не работает программа сортировки строк с помощью двумерного массива указателей Программа для сортировки любого массива |
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
04.04.2014, 18:34 [ТС] | 41 |
Работает так же как и мое((
Вот я скинул скрин результата, посмотри. Строки местами поменялись, а адреса остались те же. А нужно, что бы строка куда записалась, там и осталась, после сортировки.
0
|
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
|
||||||
04.04.2014, 21:04 | 42 | |||||
0
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
04.04.2014, 21:18 [ТС] | 43 |
swap
length а это что?
0
|
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
|
||||||
04.04.2014, 21:46 | 44 | |||||
http://www.cplusplus.com/refer... ?kw=string
Добавлено через 13 минут если без свапа, то наверное вот так надо:
0
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
04.04.2014, 22:59 [ТС] | 45 |
0
|
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
|
|
04.04.2014, 23:15 | 46 |
а почему бы и нет? стринг - тот же массив чаров.
0
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
||||||
05.04.2014, 00:03 [ТС] | 47 | |||||
просто над в char-e вообще изначально логика такова:
сделать двумерный массив, вбить туда строки и прированять к нему двойной указатель, а дальше работать с указателем. То есть у меня даже с первым пунктом (двумерный массив) не вышло, пришлось указатель делать, а дальше я даже не знаю, есть ли смысл в еще одном указателе.... вообщем у меня проблема с абстрактным пониманием что к чему и в чем есть смысл, а в чем нету) Добавлено через 35 минут
0
|
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
|
||||||
05.04.2014, 00:23 | 48 | |||||
смотри на вещи проще:
если по условию задачи надо использовать именно чар - это одно. если надо просто отсортировать строки - можно решить задачу не используя чары. ну потом - двумерный динамический массив в си походу по другому не объявишь, поэтому теперь ты знаешь как это делать Добавлено через 4 минуты конечно *str1=&add[i]; - это у тебя создается указатель str1 в которой содержится адрес add[i] add[i]=&str2; - а здесь ты что чему собрался приравнять? сам подумай немного. значению переменной ты собрался присвоить адрес указателя? http://ru.wikipedia.org/wiki/%... 0_(C%2B%2B) вот прочти вдумчиво. Добавлено через 15 минут вот тебе мой вариант сортировки с чарами, с сохранением адресов и походу то что тебе нужно Кликните здесь для просмотра всего текста
0
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
05.04.2014, 00:26 [ТС] | 49 |
Так в том коде на каждую строку ошибка, я понимаю, что там уже не логичные вещи написаны...
0
|
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
|
|
05.04.2014, 00:28 | 50 |
и на If чтоли тоже ошибка?
а дальше - указатель должен иметь тип
0
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
05.04.2014, 00:33 [ТС] | 51 |
Вот твоя программа (на скрине)
ничего не менял, просто вставил твой код проблема все та же. Какой был адрес первой строки , таким и остался, а строка изменилась
0
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
05.04.2014, 00:36 [ТС] | 52 |
на это 4 ошибки в каждой строке
Добавлено через 1 минуту А где ты компилируешь? Мб это из-за компилятора (если у тебя все норм с адресами) у меня свежий Qt MinGW
0
|
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
|
|
05.04.2014, 00:44 | 53 |
mingw Тоже использую
ты уверен что именно тот который надо проект запустил? п.с. по ссылке моей прочитал про ссылки с++?
0
|
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
|
|
05.04.2014, 00:46 | 54 |
0
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
05.04.2014, 00:50 [ТС] | 55 |
есть такое чувство, что все работает правильно, просто я не понимаю чего то))))) вот вопрос на засыпку:
есть массив char arr[4]={'A'}; и есть указатель на этот массив char *p=arr; строка cout << p; должна вывести АДРЕС на какой указывает указатель(так же?) а выводит: А !!!!!!!!!!!!!!! Получается "А" и есть адрес ? вот как тут не запутаться?)) Добавлено через 1 минуту ДА!))) Так посмотри, у тебя так же адреса остались, а строки поменялись. Добавлено через 21 секунду Я их в начале функции объявил
0
|
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
|
|
05.04.2014, 00:54 | 56 |
слушай я такими темпами сам уже освою это программирование
char *p=&arr; тогда он указывает на адрес а не просто arr; тогда он указывает на элемент (наверное ) Добавлено через 1 минуту а тебе чего надо было добиться? как объявлял? Добавлено через 2 минуты точнее тогда *str надо без * использовать
0
|
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
|
|
05.04.2014, 00:59 [ТС] | 57 |
char *p=&arr; - так ошибку выбивает)))
что бы... строки в памяти не передвигались. при вводе первая строка получает адрес, он у нее и должен остатся, а указатель на этот адрес должен получить индекс в зависимости от результатов сортировки. а такой результат как в твоем коде, у меня уже есть в моем коде, тут то сложного ничего нету.
0
|
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
|
||||||
05.04.2014, 01:38 | 58 | |||||
Кликните здесь для просмотра всего текста
0
|
05.04.2014, 01:38 | |
05.04.2014, 01:38 | |
Помогаю со студенческими работами здесь
58
Программа для сортировки одномерного массива нуждается в доработке Процедура сортировки строк двумерного массива Переделать код для сортировки массива на код для сортировки двумерной матрицы Не работает программа сортировки массива Составить программу сортировки массива строк по длине строки Составить программу сортировки массива строк по длине строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |