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

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

Войти
Регистрация
Восстановить пароль
 
Kenner
1 / 1 / 0
Регистрация: 25.08.2011
Сообщений: 27
#1

Сортировка слов из массива по алфавиту - C++

22.11.2013, 00:09. Просмотров 1103. Ответов 5
Метки нет (Все метки)

Здравствуйте!
Возникла проблема. Написал программу для сортировки слов по алфавиту. Без использования функций все работало.
Теперь выбивает ошибку.
Заранее благодарен за помощь.

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
#include<iostream> 
#include <locale.h>
using namespace std;
const int n=10; 
void sort(char *[]);
int main(){ 
    setlocale(LC_ALL, "Ukrainian");
    char *s[n]={"Ланівці","КопичинцівЂЋ","Заліщики‎","Чортків‎","Скалат‎","Зборів","Бережани","Шумськ","Кременець‎","Бучач‎"};
    int k=0;
    cout<<"До сортування:"<<endl;
    for(int i=0;i<n;i++) 
        cout<<s[i]<<endl;
    sort(&s[n]);
system("pause"); 
}
void sort(char *s[n])
{
    int k=0;
    for(int i=0;i<n-1;i++)
        for (int j=i+1; j<n; j++)
        {   k=0;
            if (s[i]!=s[j]){
                while (s[i][k]==s[j][k]) k++;
                if (s[i][k]>s[j][k]) 
                { 
                    char *s2=s[i]; 
                    s[i]=s[j]; 
                    s[j]=s2; 
 
                }
            }
        }
    cout<<endl<<"Після сортування:"<<endl;
    for(int i=0;i<n;i++) 
        cout<<s[i]<<endl; 
    
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2013, 00:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка слов из массива по алфавиту (C++):

Сортировка слов из массива по алфавиту - C++
Помогите пожалуйста найти ошибку. Неправильно сортирует слова. #include&lt;iostream&gt; using namespace std; const int n=4; ...

Сортировка слов по алфавиту - C++
MFC GUI. Собственно в чем задача:Нужно прочитать слова из файла, отсортировать их по алфавиту методом выбора и записать в новый файл. ...

Сортировка слов по алфавиту - C++
Всем привет, помогите мне пожалуйста с сортировкой слов по алфавиту, словом считают группу символов между двумя пробелами. Упорядочить...

Сортировка слов по алфавиту - C++
Здравствуйте уважаемы программисты. Необходимо отсортировать слова по алфавиту. #include &quot;stdio.h&quot; #include &quot;conio.h&quot; #include...

Сортировка слов в char по алфавиту - C++
Доброго всем времени! Помогите пожалуйста! Напечатать слова, входящие в предложение, в алфавитном порядке. Человек, попросивший...

Сортировка слов в предложении по алфавиту - C++
доброго времени суток! у меня такая проблема - нужно распечатать в алфавитном порядке слова из предложения. так вот, когда на английском...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
22.11.2013, 11:09 #2
Kenner, не знаю в этом ошибка или нет. передавайте в функцию размер массива
C++
1
2
3
4
5
6
7
void sort(char *,int);
 
char s[n]...
 
sort(s,n);
 
void sort(char *s,int n)
Добавлено через 3 минуты
и как оно у вас работало вот с этим
C++
1
if (s[i][k]>s[j][k])
помню сам когда-то так сравнивал слова и получился эпик фейл. вроде надо функцией типа strcmp() сравнивать
1
Kenner
1 / 1 / 0
Регистрация: 25.08.2011
Сообщений: 27
22.11.2013, 13:53  [ТС] #3
Дальше ошибка. Когда я делал без функций, все отлично сравнивало. Сейчас понятия не имею что не так(

Добавлено через 19 минут
Все. Проблему решил. Вставляю код, если кому понадобится.

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
#include<iostream> 
#include <locale.h>
using namespace std;
const int n=10; 
void sort(char *[]);
int main(){ 
    setlocale(LC_ALL, "Ukrainian");
    char *s[n]={"Ланівці","Копичинці;","Заліщики;","Чортків;","Скалат;","Зборів","Бережани","Шумськ","Кременець;","Бучач;"};
    int k=0;
    cout<<"До сортування:"<<endl;
    for(int i=0;i<n;i++) 
        cout<<s[i]<<endl;
    sort(s);
system("pause"); 
}
void sort(char *s[n])
{
    int k=0;
    for(int i=0;i<n-1;i++)
        for (int j=i+1; j<n; j++)
        {   k=0;
            if (s[i]!=s[j]){
                while (s[i][k]==s[j][k]) k++;
                if (s[i][k]>s[j][k]) 
                { 
                    char *s2=s[i]; 
                    s[i]=s[j]; 
                    s[j]=s2; 
 
                }
            }
        }
    cout<<endl<<"Після сортування:"<<endl;
    for(int i=0;i<n;i++) 
        cout<<s[i]<<endl; 
    
}
0
Qwertiy
821 / 629 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
22.11.2013, 13:58 #4
Цитата Сообщение от Kenner Посмотреть сообщение
sort(&s[n]);
Хм.. А оно вообще компилировалось?
0
Kenner
1 / 1 / 0
Регистрация: 25.08.2011
Сообщений: 27
22.11.2013, 14:26  [ТС] #5
Qwertiy, да, но сразу выбивало ерор))
1
Qwertiy
821 / 629 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
22.11.2013, 16:54 #6
Цитата Сообщение от Kenner Посмотреть сообщение
да
Тьфу.. Невнимательно смотрел. Конечно да - там же адрес строки, соответственно тип верный.
Кстати, с &s[0] работало бы правильно. Но просто s лучше
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2013, 16:54
Привет! Вот еще темы с ответами:

Сортировка слов в строке по алфавиту - C++
Дана строка из слов через пробел.Надо рассортировать слова по алфавиту и распечатать новую строку. Использовать библиотеки iostream и...

Сортировка слов в строке по алфавиту - C++
Собственно вот задание:Определить класс-строку. В класс включить два конструктора: для опре-деления класса строки строкой символов и путем...

Сортировка слов по алфавиту с ипользованием классов - C++
Есть задание - написать программу, которая бы сортировала слова в строке по алфавиту. У меня есть такой вот алгоритм. Надо его...

Сортировка слов по алфавиту методом выбора. - C++
Как это дело реализовать? Задать числовое значение каждой букве в алфавите или же использовать аски ? Посоветуйте)


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.11.2013, 16:54
Ответ Создать тему
Опции темы

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