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

Сортировка строк - C++

Восстановить пароль Регистрация
 
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
31.03.2013, 22:13     Сортировка строк #1
Сортирую указатели в массиве строк, но программа крашится. Помогите пожалуйста найти ошибку.
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 <cstring>
#include <cctype>
 
void sortByAlphabet( char **a, int size ) {
    
    for( int i = 0; i < size - 1; i++ ) {
        for( int j = 0; j , size - 1; j++ ) {
            int tmp = static_cast< int >(a[j + 1][0]);
            if( tmp < (static_cast< int >(a[j][0])) ) {
                char *string = a[j + 1];
                a[j + 1] = a[j];
                a[j] = string;
            }
        }
    }
}
 
int main() {
    const int size = 7;
    
    char *source[size] = {
                        "Moskva", "Odesa", "Kiev", 
                        "Lviv", "Tschernivci", "Krum", "Ezypil"
                         };
                     
    sortByAlphabet( source, size );
    
    for( int i = 0; i < size; i++ )
        std::cout << source[i] << std::endl;
        
    return 0;
}
Добавлено через 1 час 9 минут
UP...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2013, 22:13     Сортировка строк
Посмотрите здесь:

C++ сортировка строк
C++ Сортировка строк
Сортировка строк C++
C++ Сортировка строк матрицы C++ (перестановка строк)
C++ Сортировка строк
C++ Сортировка строк
Сортировка строк C++
C++ Сортировка строк

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
31.03.2013, 22:21     Сортировка строк #2
C++
1
2
3
4
5
6
7
for( int j = 0; j , size - 1; j++ ) {
            int tmp = static_cast< int >(a[j + 1][0]);
            if( tmp < (static_cast< int >(a[j][0])) ) {
                char *string = a[j + 1];
                a[j + 1] = a[j];
                a[j] = string;
            }
Присмотритесь внимательнее, у вас здесь вечный цикл. Это то, что в первую очередь бросается в глаза
Возможно вместо "j , size - 1" вы хотели написать j < size - 1
Yandex
Объявления
31.03.2013, 22:21     Сортировка строк
Ответ Создать тему
Опции темы

Текущее время: 15:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru