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

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

Войти
Регистрация
Восстановить пароль
 
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
#1

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

20.04.2013, 23:11. Просмотров 543. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void sortByFio() {
    int i,j;
    char temp[50];
    char temp2[50];
    char temp3[50];
    for (i = 0; i<len; i++) {
        for ( i = j+1; j<len; j++) {
            if (book[i].fio > book[j].fio) {
                temp = book[j].fio;
                book[j].fio = book[i].fio;
                book[i].fio = temp;
                
                temp2 = book[j].num;
                book[j].num = book[i].num;
                book[i].num = temp2;
                
                temp3 = book[j].adr;
                book[j].adr = book[i].adr;
                book[i].adr = temp3;
            }
        }
    }
}
ошибка LValue Required
что я не так делаю, почему одно поле нельзя присвоить другому
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2013, 23:11     Сортировка массива структур
Посмотрите здесь:

Сортировка массива структур - C++
Дана структура WORKER и массив из 10 стркутур. Нужно 1)сортировать список 2) вывести на экран рабочих чей стаж больше числа введённого с...

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

Сортировка массива структур - C++
Здравствуйте! Помогите пожалуйста реализовать сортировку массива структур по полю &quot;date&quot; (все записи должны быть отсортированны по дате)....

Сортировка массива структур - C++
Есть файл с текстом(this is spartaaaaaa!), нужно посчитать количество повторений каждого символа, вывести все это в консоль, затем...

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

Сортировка массива структур - C++
Разработать программу, реализующую сортировку массива структур (50 элементов). В качестве элемента массива выбрать структуру,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
21.04.2013, 00:01     Сортировка массива структур #2
Last_Night, потому что temp имя массива. А строки надо копировать хотя бы через strcpy.
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
21.04.2013, 00:24  [ТС]     Сортировка массива структур #3
спасибо тупанул(

Добавлено через 12 минут
не работает((
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
21.04.2013, 00:38     Сортировка массива структур #4
Второй цикл какой-то не такой: j = i+1 наверное надо. Хотя не очень понятно зачем.
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
21.04.2013, 00:43     Сортировка массива структур #5
Last_Night, показывайте, что изменилось. И структуру желательно тоже.
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
21.04.2013, 00:57  [ТС]     Сортировка массива структур #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void sortByFio() {
    int i,j;
    char temp[50];
    char temp2[50];
    char temp3[50];
    for (i = 0; i<len; i++) {
        for ( i = j+1; j<len; j++) {
            if (book[i].fio[1] > book[j].fio[1]) {
                strcpy(temp,book[j].fio);
                strcpy(book[j].fio, book[i].fio);
                strcpy(book[i].fio, temp);
                
                strcpy(temp2,book[j].num);
                strcpy(book[j].num, book[i].num);
                strcpy(book[i].num, temp2);
                
                strcpy(temp3, book[j].adr);
                strcpy(book[j].adr, book[i].adr);
                strcpy(book[i].adr, temp3);
            }
        }
    }
}
просто напросто когда вызывается функиция, окно программы вылетает

Добавлено через 9 минут
C++
1
2
3
4
5
struct refBook {
    char num[11];
    char fio[50];
    char adr[50];
}  book[500];
вот сама структурка
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
21.04.2013, 01:01     Сортировка массива структур #7
Скорее всего дело в индексах, как сказано выше. j не инициализирован, но используется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2013, 01:43     Сортировка массива структур
Еще ссылки по теме:

Сортировка массива структур - C++
Разьясните пожалуйста в как можно поступить по другому. Не выделяя, как у меня дополнительный массив. #include&lt;iostream&gt; const...

Сортировка массива структур - C++
имеется структура struct { char lastname, firstname; unsigned int math, inf, phys; }rat, temp; необходимо отсортировать...

Сортировка массива структур - C++
В общем, то что в названии темы, то и не получается. Не хочет присваиваться адрес предыдущей ячейки в массиве stud1.h #include...

Сортировка массива структур - C++
Имеется структура : struct Data_base { string team_name; string city; int scored_goals; int missed_goals;...


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

Или воспользуйтесь поиском по форуму:
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
21.04.2013, 01:43  [ТС]     Сортировка массива структур #8
спасибо, а я и не заметил, уже не вылетает но всёравно не сортирует

Добавлено через 4 минуты
всё в норме
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void sortByFio() {
    int i,j;
    char temp[50];
    char temp2[50];
    char temp3[50];
    for (i = 0; i<len-1; i++) {
    for ( j = i+1; j<len; j++) {
        if (book[i].fio[0] > book[j].fio[0]) {
        strcpy(temp,book[i].fio);
        strcpy(book[i].fio, book[j].fio);
        strcpy(book[j].fio, temp);
                
        strcpy(temp2,book[i].num);
        strcpy(book[i].num, book[j].num);
                strcpy(book[j].num, temp2);
 
        strcpy(temp3, book[i].adr);
        strcpy(book[i].adr, book[j].adr);
        strcpy(book[j].adr, temp3);
            }
        }
    }
}}
работает
Yandex
Объявления
21.04.2013, 01:43     Сортировка массива структур
Ответ Создать тему
Опции темы

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