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

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

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

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

17.09.2015, 11:17. Просмотров 431. Ответов 5
Метки нет (Все метки)

Надо отсоритровать структуру по параметру "Телефон"
Листал форум, вроде все написано правильно, сортировку делаю "пузырьком", но выводит результат который был введен изначально.
Компилятор Dev-C++
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
#include <stdio.h>
#include <iostream>
#include <clocale>
 using namespace std;
 int main() {
 setlocale (LC_CTYPE, "");
 struct dovidnuk {
 char pr[100]; char vul[100]; char tel[10];};
 struct dovidnuk dov[5],a;
 int i;
 for (i=0;i<2;i++) {
    cout <<  "Студент №" << i+1 << endl;
    printf("Фамилия:"); scanf("%s",dov[i].fam);
    printf("Улица:"); scanf("%s",dov[i].ul);
    printf("Телефон:"); scanf("%s",dov[i].tel);
}
int l;
printf("Для сортировки нажмите 1\n"); scanf("%s",l);
if (l==1)
for(int i=0;i<5;i++)
 for(int j=0;j<4;j++)
 if(dov[i].tel<dov[j].tel) {
        a=dov[i];
        dov[i]=dov[j];
        dov[j]=a;
    }
cout <<  "Sorted:" << endl;
for (i=0;i<5;i++) {
cout <<dov[i].fam<<"\t"<<dov[i].ul<<"\t"<<dov[i].tel<<"\t"<<"\n"<<endl;
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2015, 11:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка в структуре (C++):

Сортировка в структуре - C++
Структура: struct Worker { string Name; int Year; status Status; ...

Сортировка в структуре - C++
По заданию нужно ввести данные в структуре, отсортировать по цене (от наименьшей к наибольшей) и вывести. На сортировке засыпался, прошу...

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

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

Сортировка данных в Структуре С++ - C++
Доброго времени суток, дорогие форумчане! Возникла следующая проблема. Нужно отсортировать структуру по полю типа int Сама...

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

5
nmcf
5756 / 5067 / 1734
Регистрация: 14.04.2014
Сообщений: 20,749
17.09.2015, 11:39 #2
Что за чушь в 18-й строке? Должно быть:
C++
1
printf("Для сортировки нажмите 1\n"); scanf("%d", &l);
1
zss
Модератор
Эксперт С++
6686 / 6248 / 2083
Регистрация: 18.12.2011
Сообщений: 16,316
Завершенные тесты: 1
17.09.2015, 11:47 #3
Цитата Сообщение от markcod3 Посмотреть сообщение
cout << "Студент №" << i+1 << endl;
printf("Фамилия:");scanf("%s",dov[i].fam);
Неприлично смешивать божий дар с яичницей
C++
1
2
cout << "Студент №" << i+1 << endl<<"Фамилия:";
cin>>dov[i].fam;
Добавлено через 1 минуту
Цитата Сообщение от markcod3 Посмотреть сообщение
if(dov[i].tel<dov[j].tel) {
C++
1
if(strcmp(dov[i].tel,dov[j].tel)==-1){
1
markcod3
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 7
17.09.2015, 22:43  [ТС] #4
nmcf,
Сортировка теперь работает, спасибо, но могли бы обьяснить почему именно так, или где почитать можно про это?

zss,
Все работет, но на выводе вместо русских букв какойто бред, с англ. все нормально, в чем может быть проблема?
0
nmcf
5756 / 5067 / 1734
Регистрация: 14.04.2014
Сообщений: 20,749
17.09.2015, 23:08 #5
Читай описание функции scanf(). Там должны быть указатели и буквы в форматной строке в соответствии с типами вводимых данных.
0
zss
Модератор
Эксперт С++
6686 / 6248 / 2083
Регистрация: 18.12.2011
Сообщений: 16,316
Завершенные тесты: 1
18.09.2015, 08:02 #6
setlocale устанавливает для консоли вывода Windows кодировку.
Однако ввод так и остается в DOS кодировке.
C++
1
2
3
4
5
#include <windows.h>
...
cin>>dov[i].fam;
OemToChar(dov[i].fam,dov[i].fam);
....
0
18.09.2015, 08:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2015, 08:02
Привет! Вот еще темы с ответами:

Сортировка по фамилии в структуре - C++
Посмотрите пожалуйста структуру Студент! Нужно сделать сортировку по фамилии.Думаю, что с функцией strcmp что-то не так... Задание:...

Сортировка в структуре по отдельным полям - C++
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include...

Сортировка string по алфавиту в структуре - C++
Итак, задача считать информацию из файла, в формате string\t char\t int\n и отсортировать в алфавитном порядке по первому значению в строке...

Сортировка в структуре (ошибка в коде) - C++
void sort () { setlocale(LC_ALL, &quot;Russian&quot;); int lo; cout&lt;&lt;endl&lt;&lt;&quot;Введите: &quot;&lt;&lt;endl; ...


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

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

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