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

Сортировка букв в слове - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 5.00
ammg
0 / 0 / 0
Регистрация: 02.03.2010
Сообщений: 4
30.03.2010, 00:41     Сортировка букв в слове #1
Я написал код но он кривой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <windows.h>
using namespace std;
 
int main()
{
SetConsoleOutputCP(1251);
char word [255];
int i=0;
int j=0;
cout<<"Введите строку:";
cin.getline(word,255);
cout<<"Сортировка:";
for (int i=0;i<255-1;i++)
for (int j=i+1;j<255;j++)
if( word[i] > word[j] )
{
swap(word[i],word[j]);
}
cout<<word<<endl;
return 0 ;
}
если как то можнно исправить то помогите,,или помогите сделать заново)))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.03.2010, 00:47     Сортировка букв в слове #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
#include <algorithm>
 
/* сортировка букв в строке */
int main(){
    std::string buf;
    std::cout << "String: ";
    std::getline(std::cin, buf);
    std::sort(buf.begin(), buf.end());
    std::cout << "Sorted: " << buf << std::endl;
    return 0;
}
ammg
0 / 0 / 0
Регистрация: 02.03.2010
Сообщений: 4
30.03.2010, 00:51  [ТС]     Сортировка букв в слове #3
а можна как то полегче??без std::

Добавлено через 53 секунды
мне простой сортировкой нужно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.03.2010, 00:56     Сортировка букв в слове #4
Цитата Сообщение от ammg Посмотреть сообщение
а можна как то полегче??без std::
ага
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
/* сортировка букв в строке */
int main(){
    string buf;
    cout << "String: ";
    getline(cin, buf);
    sort(buf.begin(), buf.end());
    cout << "Sorted: " << buf << endl;
    return 0;
}
ammg
0 / 0 / 0
Регистрация: 02.03.2010
Сообщений: 4
30.03.2010, 01:13  [ТС]     Сортировка букв в слове #5
у меня есть такое решение просто оно не прокатило на паре))

Добавлено через 10 минут
ну и без sort,мы такое не учили еще,,,так что мне не поверят.....

Добавлено через 2 минуты
типа пузырьковая сортировка,,или еще как то но не так??
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
30.03.2010, 13:07     Сортировка букв в слове #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::cout << "Unsorted string: \'" << str << "\'" << std::endl;
    for(size_t i=0; i<str.size(); ++i)
        for(size_t j=str.size()-1; j>i; --j)
            if(str[j-1]>str[j])
            {
                char temp=str[j];
                str[j]=str[j-1];
                str[j-1]=temp;
            }
    std::cout << "Sorted string: \'" << str << "\'" << std::endl;
    system("pause");
    return 0;
}
Добавлено через 4 минуты
Что конкретно неправильно в твоем примере:
  1. Тебе нужно посчитать длину введенной строки, и уже ее использовать в цикле, а не число 255
  2. Сравнивать надо два соседних символа: a[j] и a[j+1], причем j меняется от в пределах от i+1 до size-1, где size - размер строки
Yandex
Объявления
30.03.2010, 13:07     Сортировка букв в слове
Ответ Создать тему
Опции темы

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