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

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

Восстановить пароль Регистрация
 
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
20.04.2013, 23:11     Сортировка массива структур #1
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++
C++ Сортировка массива структур
Сортировка массива структур C++
Сортировка массива структур C++
Сортировка массива структур C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
21.04.2013, 00:38     Сортировка массива структур #4
Второй цикл какой-то не такой: j = i+1 наверное надо. Хотя не очень понятно зачем.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 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
 Аватар для BumerangSP
4283 / 1405 / 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++ сортировка структур массива
Сортировка массива структур C++
Сортировка массива структур C++

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

Или воспользуйтесь поиском по форуму:
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     Сортировка массива структур
Ответ Создать тему
Опции темы

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