Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
#1

Программа для сортировки массива строк - C++

02.04.2014, 20:56. Просмотров 2363. Ответов 57
Метки нет (Все метки)

Нужно написать программу для сортировки строк, используя указатели.

Программа должна считать количество элементов массива (вот тут и возникла проблема) строк и сам массив.
Сортированный вывести на экран.
Нужно написать функцию сортировки массива строк, параметры какой -- массив указателей и количество элементов.
===============================

Собственно суть проблемы в том, что при попытки сделать массив например char list[n][100]; (n - вводимое количество строк) -- выдает ошибку. Я так понимаю, n - должна быть const, а не переменной.
Но как же тогда сделать вводимое значение количества строк?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2014, 20:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа для сортировки массива строк (C++):

Пример быстрой сортировки массива строк и сортировки методом выбора - C++
Добрый вечер. Скиньте пожалуйста пример быстрой сортировки массива строк и сортировки массива строк методом выбора. Очень срочно надо,...

Составить программу сортировки массива строк по длине строки - C++
Помогите пожалуйста

Составить программу сортировки массива строк по длине строки - C++
Составить программу сортировки массива строк по длине строки.

Строки. Составить программу сортировки массива строк, введенных пользователем. - C++
Составить программу сортировки массива строк, введенных пользователем. Использовать функцию strcmp ().

Программа сортировки массива методом пузырька - C++
Здравствуйте! Пожалуйста, помогите написать программу! Вот задание: Создать на C++ Builder программу сортировки массива в порядке...

Где тут ошибка? Программа сортировки массива по возрастанию - C++
программа сортирует массив по возрастанию. кусок кода который выполняет сортировку взял с инета. но преп придрался к оформлению и после...

57
fmtuner
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
02.04.2014, 21:03 #2
динамический массив?
0
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
02.04.2014, 21:09  [ТС] #3
Цитата Сообщение от fmtuner Посмотреть сообщение
динамический массив?
Ну да
0
fmtuner
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
02.04.2014, 21:14 #4
Динамический массив
вот тут рядом тема лежит
0
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
02.04.2014, 22:41  [ТС] #5
Цитата Сообщение от fmtuner Посмотреть сообщение
вот тут рядом тема лежит
Создать динамический массив с типом int я могу.
Не получается с типом char!!!!!!!!

Добавлено через 16 минут
Эй ребята помогите)

Добавлено через 52 минуты
Вообщем нужен двумерный динамичный массив для char
0
fmtuner
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
02.04.2014, 23:17 #6
C++
1
2
char **A = new char*[stroki]
for (int i=0;i<stroki;i++) A[i]=new char[stolbci];
на выходе двумерный массив к которому можно обращаться A[i][j] например.
1
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
02.04.2014, 23:36  [ТС] #7
Вот код. С выделением памяти вроде разобрался (хотя у меня Qt MinGW и мне говорили, что он автоматом её выделяет, ну да ладно).
Проблема в том, что cin.getline() не хочет нормально работать. Мне нужно в каждую строку записать текст...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main()
{
    SetConsoleOutputCP(1251);
 
    system("cls");
    int n, size;
    cout << " Введите количество рядков: ";
    cin >> n;
    cout << " Введите размер строки: ";
    cin >> size;
    //Сначала объявляется указатель второго  порядка char **list, который ссылается на массив указателей char*[n]
    char **list = new char*[n];
    for(int i=0; i<n; i++)
        list[i] = new char[size];
 
    
    for(int i=0; i<n; i++)
    {
        cout << " Ведите текст: ";
        cin.getline(list[i],size);// НЕ РАБОТАЕТ!
    }
    
 
    //освобождение выделеной под массив памяти.
    for(int i=0; i<n; i++)
        delete [] list[i];
    return 0;
}
0
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
03.04.2014, 00:32  [ТС] #8
Текст: "Введите текст:" почему то дублируется(((
0
Миниатюры
Программа для сортировки массива строк  
fmtuner
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
03.04.2014, 00:53 #9
C++
1
2
3
4
5
for(int i=0; i<n; i++)
 {
cout << " Ведите текст: ";
 cin.getline(list[i][size],size);// наверное так надо!
 }
ниже по коду тоже самое
0
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
03.04.2014, 00:57  [ТС] #10
неа)
0
fmtuner
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
03.04.2014, 01:05 #11
Цитата Сообщение от andreyananas Посмотреть сообщение
Текст: "Введите текст:" почему то дублируется(((
не дублируется, толком сам не знаю - но вроде как связано с работой cin'а и он хавает твой ентер который нажал после последнего ввода.
другими словами это не 2 раза вводится, а ты ввел "типа" пустую строку

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <windows.h>
#include <locale>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"RUS");
 
    system("cls");
    int n, size;
    cout << " Введите количество рядков: ";
    cin >> n;
    cout << " Введите размер строки: ";
    cin >> size;
    cout<<endl;
    //Сначала объявляется указатель второго  порядка char **list, который ссылается на массив указателей char*[n]
    char **list = new char*[n];
    for(int i=0; i<n; i++)
        list[i] = new char[size];
 
    cin.sync();
    for(int i=0; i<n; i++)
    {
        cout << " Ведите текст: ";
        cin.getline(list[i],size);// НЕ РАБОТАЕТ!
    }
 
    for (int i=0; i<n;i++)
    {
        cout<<endl;
        for (int j=0;j<size;j++)
        {
            cout<<list[i][j];
        }
    }
 
    //освобождение выделеной под массив памяти.
    for(int i=0; i<n; i++)
        delete [] list[i];
    return 0;
}
вот код - всё работает

Добавлено через 1 минуту
codeblocks mingw
0
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
03.04.2014, 01:08  [ТС] #12
я перед циклом ввода fflush(stdin) вставил и дублироваться перестало.

Ну вроде осталось сортировку прикрутить.
0
fmtuner
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
03.04.2014, 01:11 #13
бог в помощь
1
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
03.04.2014, 01:14  [ТС] #14
Цитата Сообщение от fmtuner Посмотреть сообщение
бог в помощь
)) та вроде сложное позади, правда я не уверен, правильно ли я сделал.
0
fmtuner
-5 / 14 / 2
Регистрация: 16.03.2014
Сообщений: 78
03.04.2014, 01:24 #15
я уверен - ты всё правильно сделал.
0
03.04.2014, 01:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2014, 01:24
Привет! Вот еще темы с ответами:

Программа для сортировки - C++
Здраствуйте, необходимо написать программу в которуй будет 12 случайных элементов, затем нужно будет сложить рядом стоящие элементы, и...

Составить программу для сортировки данного набора строк по символу - C++
Составить программу для сортировки данного набора строк по символу с номером k&gt;0. Значение k не превосходит длины с самой короткой строки...

Программа для поиска соответствие строк, учитывая регистр, в текстовом файле с 10000+ строк - C++
Уважаемые форумчане, прошу у вас помощи я неделю в поисках. Мне нужна программа или код для поиска слов, очень похожую на расширение Pearls...

Два счетчика для обмена и сравнений для сортировки массива - C++
написал два счетчика для обмена и сравнений для сортировки массива.Проблема при выводе выводится сначала кучу чисел сортировки и обмена,а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.