Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
1 / 1 / 1
Регистрация: 08.01.2013
Сообщений: 36

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

10.09.2013, 18:39. Показов 3428. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно отсортировать список студентов за месяцем рождения, Студенты, месяц у которых одинаков - должны быть отсортированы по алфавиту(их фамилии).
Сделал всё, вплоть до сортировки по алфавиту, итак:
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
61
#include <iostream>
#include <fstream>
#include <string>
    using namespace std;
            
    
    int main()
    {
       string a[100];
       int month[100];
       int n;
 
       ifstream f1("d:\name.txt");
        
            
 
            for(n=0; n!=8; n++)
               f1>>a[n]>>month[n];
        
            cout<<endl<<"Surnames  &  months:"<<endl<<endl;
 
            for(n=0; n!=8; n++)
               cout<<a[n]<<" "<<month[n]<<endl;
          
        
            string fakesur;
            int fm;
 
                for(int x=0; x!=8-1;x++)
                    for(n=0; n!=8-1;n++)
                        if (month[n+1]>month[n])
                        {
                            fm=month[n+1];
                            month[n+1]=month[n];
                            month[n]=fm;
                        
                            fakesur=a[n+1];
                            a[n+1]=a[n];
                            a[n]=fakesur;
                        }
 
            
cout<<endl<<endl<<"Surnames  &  months after bubble:"<<endl<<endl;
 
            for(n=7; n!=-1; n--)
               cout<<a[n]<<" "<<month[n]<<endl;
          
 
 
 
 
 
 
 
 
 
 
            system("PAUSE >> VOID");       
            return 0;
        
    }
Вот информация, которой заполняем
Code
1
2
3
4
5
6
7
8
Levchenko 4
Ivanov 6
Alekseev 12
Zelenskii 1
Rotaru 9
Chernov 1
Bondar 11
Kolomyets 3
Надеюсь на помощь=)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.09.2013, 18:39
Ответы с готовыми решениями:

Сортировка по алфавиту
Здравствуйте! Помогите отсортировать содержимое каталога по алфавиту. В этом каталоге может содержаться и другая папка. Просто я не...

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

Сортировка по алфавиту
Доброго времени суток. Имеется задача: Описать структуру с именем ORDER, содержащую следующие поля: *расчетный счет плательщика ...

10
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
10.09.2013, 19:40
А теперь, внимание, вопрос!
0
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
10.09.2013, 19:44
Цитата Сообщение от Jamguranga Посмотреть сообщение
ifstream f1("d:\name.txt");
открывается файл d:\name.txt?

Меня терзают смутные сомнения что сочетание \n преобразуется в символ новой строки
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
10.09.2013, 19:45
Это конечно не ошибка, но просто не понятно что: system("PAUSE >> VOID");
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
10.09.2013, 19:47
Цитата Сообщение от castaway Посмотреть сообщение
Это конечно не ошибка, но просто не понятно что
Многие думают, что это перенаправление вывода вникуда
как в NUL
0
10.09.2013, 19:55

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
как в NUL
В нал это самое безопасное. Милое дело. Потом хоть куда можно. :)

0
1 / 1 / 1
Регистрация: 08.01.2013
Сообщений: 36
10.09.2013, 19:57  [ТС]
d:\name.txt поставил для примера, использовал текстовый файл, который закинул в файлы ресурсов, а вы уже придрались Вопрос - как сделать сортировку фамилий? Как-то через таблицу ascii делал, но было это давно и не помню где и как находил этот метод
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
10.09.2013, 19:59
Цитата Сообщение от Jamguranga Посмотреть сообщение
Вопрос - как сделать сортировку фамилий?
Цитата Сообщение от Jamguranga Посмотреть сообщение
Сделал всё, вплоть до сортировки по алфавиту
У меня, по-моему, лыжи что-то не едут..
0
1 / 1 / 1
Регистрация: 08.01.2013
Сообщений: 36
10.09.2013, 20:03  [ТС]
Студенты, месяц у которых одинаков - должны быть отсортированы по алфавиту(их фамилии).
Цитата Сообщение от castaway Посмотреть сообщение
У меня, по-моему, лыжи что-то не едут..
нужно сделать сортировку фамилий тех студентов, месяц рождения которых совпадает, именно до этого момента я и выполнил задачу, всё же понятно
0
47 / 32 / 9
Регистрация: 05.01.2013
Сообщений: 307
10.09.2013, 20:10
Может поможет - http://www.cplusplus.com/refer... g/strcoll/
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
10.09.2013, 22:10
Jamguranga, данные поместите в структуру:
напишите функцию сравнения возвращающую bool в которой отразите логику сравнения по двум параметрам и используйте в операторе if
Цитата Сообщение от Jamguranga Посмотреть сообщение
C++
1
if (fcomparer(stud[n+1], stud[n]))
соответственно stud это массив структур.
Вот пример с вектором таких структур и сортировкой sort из STL <algorithm>
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
61
]
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <windows.h>
using namespace std;
struct Student
{   
    string name;
    int month;    
    Student();
    Student(const string n, int month_);
    
     void show(){cout<<name<<" "<<month<<endl;};
     ~Student(){};
static  int Compirer(Student *one, Student *two);
};
 
int Student::Compirer(Student *one, Student *two){
    if(one->month == two->month)
        return (one->name.compare(two->name.c_str())>0)? 0:1;
    else
        return (one->month > two->month)? 0 : 1;
}
 
Student::Student()
{}
Student::Student(const string n, int id_):name(n), month(id_)
{}
 
int main(){
SetConsoleCP (1251); SetConsoleOutputCP (1251);
Student st("Vasya", 1);
Student st1("Basya", 2);
Student st2("Basya", 3);
Student st3("Alice", 3);
Student st4("Sonya", 4);
Student st5("Sonya", 2);
vector<Student*> stvec;
stvec.push_back(&st);
stvec.push_back(&st1);
stvec.push_back(&st2);
stvec.push_back(&st3);
stvec.push_back(&st4);
stvec.push_back(&st5);
size_t sz = stvec.size();
cout<<"\nВведено в порядке:"<<endl;
//---------------------------
for(size_t i = 0; i < sz; ++i) {
    stvec[i]->show();
}
sort(stvec.begin(), stvec.end(), &Student::Compirer);
cout<<"\nОтсортировано в порядке:"<<endl;
//---------------------------
for(size_t i = 0; i < sz; ++i) {
    stvec[i]->show();
}
cin.get();   
return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.09.2013, 22:10
Помогаю со студенческими работами здесь

Сортировка по алфавиту
Вот программа , там сортировка по нумерации поездов, а нужна по ПУНКТАМ назначения, кто знает поправите, спасибо. ...

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

Сортировка по алфавиту
С клавиатуры ввести автора и название книги и посторить список по алфавиту.

Сортировка по алфавиту
Имееться файл с данными о читателях: Savchuk:Lida:Ivanovna:1956:56953247:4:0:1:500: Marchenko:Dmitry:Olegovich:1999:54446844:3:1:2:500:...

сортировка по алфавиту
Задача: Описать структуру с именем PRICE, содержащую следующие поля: название товара; название магазина, в котором продается...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Ноутбук (на замену), о котором я и не подозревал, что он у меня появится.
Programma_Boinc 28.12.2025
Ноутбук (на замену), о котором я и не подозревал, что он у меня появится. Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием "Ноутбук (на замену), о котором я и не. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru