Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подарки Деда Мороза http://www.cyberforum.ru/cpp-beginners/thread1137359.html
Раскладывая конфеты по пакетам, Дед Мороз положил в первый пакет 1 конфетку, во 2-ю – 2, … в N-ю – N. Может ли Снегурочка, докладывая каждый раз в два любых разных пакета по одной конфетке, сделать одинаковым количество конфет во всех подарках? Технические условия Входные данные В единственной строке задано натуральное число N (3 ≤ N ≤ 100000000). Выходные данные
C++ Найти наибольшую дробь не испольлзуя деления В массивах K (n) и L (n) заданы соответственно числители и знаменатели рациональных чисел вида xi = ki / li, i = 1, 2, ..., n. Найти наибольшее из этих чисел, не используя операцию деления http://www.cyberforum.ru/cpp-beginners/thread1137350.html
C++ Найти через индекс количество отрицательных и количество положительных элементов массива
Нужно найти через индекс количество отрицательных и количество положительных элементов.
Найти минимальный элемент C++
Здравствуйте, Уважаемые программисты у меня есть большая проблема. Не могу решить задачи по с++ т.к не понимаю этот язык. помогите кто чем может. вот задачи 1)Найти количество тех элементов массива, которые не содержат в своей записи цифру 5, а также найти минимальный элемент среди тех, которые имеют заданное количество делителей. 2)Для заполнения массива нужно использовать генератор ...
C++ Дан массив вещественных чисел. Выяснить верно ли, что количество положительных элементов не превышает 5 http://www.cyberforum.ru/cpp-beginners/thread1137325.html
Привет всем. помогите пожалуйста с задачей. Дан массив вещественных чисел. Выяснить верно ли, что количество положительных элементов не превышает 5. буду благодарен
C++ Поиск эталонной последовательности элементов в одномерном массиве Помогите пожалуйста решить задачу: поиск эталонной последовательности элементов в одномерном массиве произвольной длины. подробнее

Показать сообщение отдельно
andreyananas
21 / 21 / 8
Регистрация: 15.10.2013
Сообщений: 854
Завершенные тесты: 2
03.04.2014, 18:03  [ТС]     Программа для сортировки массива строк
Цитата Сообщение от fmtuner Посмотреть сообщение
имею ввиду как отсортировать надо?
по количеству символов

Добавлено через 5 часов 22 минуты
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <windows.h>
 
using namespace std;
 
char **sort(char**, int);
 
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];
    fflush(stdin);
    for(int i=0; i<n; i++)
    {
        cout << " Ведите текст: ";
        cin.getline(list[i],size);
    }
    for(int i=0; i<n; i++)
    {
        cout << list[i]<< endl;
    }
 
    list=sort(list,n); // НЕ РАБОТАЕТ сортировка!!!!!
 
    for(int i=0; i<n; i++)
    {
        cout << " После сортировки: " << list[i]<< endl;
    }
    //освобождение выделеной под массив памяти.
    for(int i=0; i<n; i++)
        delete [] list[i];
    delete [] list;
    return 0;
}
char **sort(char **arr, int N)
{
    char *tmp;
    for(int i = 0; i < N - 1; ++i) // i - номер прохода
        {
            for(int j = 0; j < N - 1; ++j) // внутренний цикл прохода
            {
                if (strcmp(arr[j], arr[j + 1])>0)
                {
                    tmp = arr[j + 1];
                    arr[j + 1] = arr[j];
                    arr[j] = tmp;
                }
            }
        }
    return arr;
}
вот прикрутил функцию по сортировки, но она не хочет работать(

Добавлено через 14 минут
Вот если эту функцию
Цитата Сообщение от andreyananas Посмотреть сообщение
C++
1
(strcmp(arr[j], arr[j + 1])>0)
Заменить на вот такое
C++
1
((strlen(arr[j])) > (strlen(arr[j+1])))
Тогда все работает. Но почему не работает с функцией strcmp()?
 
Текущее время: 20:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru