Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
ZOMBO
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 38
#1

Сортировка по алфавиту

20.10.2012, 22:23. Просмотров 1418. Ответов 1
Метки нет (Все метки)

На вход подается некоторое количество описаний книг (автор, название, количество страниц). Отсортировать и вывести в алфавитном порядке по названиям.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2012, 22:23
Ответы с готовыми решениями:

Сортировка по алфавиту
Не могу сообразить как по алфавиту отсортировать, что нужно изменить? Если можно, то скажите что...

Сортировка по алфавиту
На вход подается некоторое количество описаний книг (автор, название, количество страниц)....

Сортировка по алфавиту
Ввести в компьютер такую информацию об автомобиле: фамилия и инициалы владельца, модель автомобиля,...

Сортировка по алфавиту
Необходимо произвести сортировку по алфавиту по полю name. #include "stdafx.h" #include...

Сортировка по алфавиту
Нужно отсортировать список студентов за месяцем рождения, Студенты, месяц у которых одинаков -...

1
AnyOne697
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
Завершенные тесты: 1
21.10.2012, 00:50 #2
Лучший ответ Сообщение было отмечено ZOMBO как решение

Решение

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
#include <set>
#include <string>
#include <iostream>
 
//объявляем (перегружаем) функцию вывода
ostream& operator << (ostream&  o, descriptBook db);
 
//Создаём класс, который описывает наше описание книги (простите за "тавтологию"):
class descriptBook{
    std::string m_author; //автор, в ООП на Си++ приват-свойства принято начинать с префикса "m_"
    std::string m_title;  //название
    std::string m_npages; //кол-во страниц
public:
    descriptBook(std::string author, std::string title, std::string m_npages){
        m_author = author;
        m_title = title;
        m_npages = pages;
    }
 
    //перегружаем оператор сравнения (меньше) для контейнера "коллекция"
    bool operator < (descriptBook db){ return (m_title < db.m_title); }
 
    friend ostream& operator << (ostream&  o, descriptBook db); //сдруживаем наш класс с перегруженной функцией
                            //вывода, чтобы был доступ к приватизрованным свойствам класса
}
 
//пишем реализацию функции вывода
ostream& operator << (ostream&  o, descriptBook db){
    return o << db.m_title << " has been written by " << db.m_author << " in " << m_pages << " pages";
}
 
int main(int argc, char **argv){
    unsigned n; std::cin >> n; //считываем со входа (обычно - консоль) кол-во описаний книг
 
    //у этой структуры есть огромный плюс! она ВСЕГДА отсортирована (если что - реализация - Красно-Чёрные деревья)
    set<descriptBook> sDescBook;
 
    std::string t_a, t_t, t_np; //временные переменные "эл-ов" нашего описания
    while(n--){
        std::cin >> t_a >> t_t >> t_np; //заносим со входа (с консоли) автора, название и кол-во страниц
                        //именно в таком порядке разделяя пробелами или энтерами
                        //(сами элементы без пробелов (табуляция и энтеров), офк)
        sDescBook.insert(descriptBook(t_a, t_t, t_np)); //создаём объект класса descriptBook и сразу пихаем его в коллекцию
    }
 
    //с помощью итератора коллекции проходим от начала до конца по уже (читай, ВСЕГДА) отсортированному массиву
    //описаний и...
    for(std::set<descriptBook>::iterator i = sDescBook.begin(); i != sDescBook.end(); i++)
        std::cout << *i << std::endl; //...выводим с помощью уже перегруженной функции вывода в поток
 
    return 0;
Очень надеюсь, что помог. Код написан, к сожалению, в довольно сложном стиле с применением ООП, перегрузки операторов, и, что на мой взгляд критичнее всего, STL std::set, что может свести на нет всё задание. Впрочем, если объяснить преподавателю (или кому там), что пилить велосипеды не самое лучшее занятие в жизни и лучше я потрачу его на куда более интересное время препровождение с [(девушкой/тренажёркой/отладчиком/ассембером/книгой/собакой/...) <- выбрать нужное или вставить свой], то, возможно, как человек он всё поймёт и... там по обстоятельствам.

Удачи!
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2012, 00:50

Сортировка по алфавиту
Нужно ввести в программу данные о футболисте, отсортировать их по фамилии футболиста(т.е. первой...

Сортировка по алфавиту
Правильные глаголы находятся и все нормально выводится, но сортировка по алфавиту не работает...

Сортировка по алфавиту
Ознакамливаюсь со структурами. Все прекрасно, осталось только отсортировать символьные массивы по...


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

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

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