IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> сортировка символьного массива, С++
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 233
Пол: Женский
Реальное имя: Dasha

Репутация: -  0  +


мне нужно отсортировать массив записей,содержащих наименования алфавитном порядке.
как это сделать в с++ я понятия не имею.

подскажите,пожалуйста,как это сделать.

буду благодарна за помощь.


--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 233
Пол: Женский
Реальное имя: Dasha

Репутация: -  0  +


а если подробно описывать.
в смысле без стандартных вот этих функций:?

и кстати как можно в тексте программы сравнить символьную величину с конкретным словом?


--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата(Tribunal @ 11.10.2006 15:55)
а если подробно описывать.
в смысле без стандартных вот этих функций:?
Тогда вот тебе пример... Разбирайся... (сортировка взята из нашего FAQ-а)...
#include <string.h>

#define n 10

typedef struct tagT {

char title[20];
double price;

} T;

int main() {
int i, j;
T arr[10] = {
{"1234", 10.0},
{"a234", 10.0},
{"u234", 10.0},
{"f234", 10.0},
{"m234", 10.0},
{"gg34", 10.0},
{"er34", 10.0},
{"op34", 10.0},
{"ni34", 10.0},
{"ab34", 10.0}
};

T buffer;

printf("before:\n");
for(i = 0; i < 10; ++i)
printf("%10s (%f)\n", arr[i].title, arr[i].price);

for(i = 0; i < n; ++i)
for(j = n - 1; j >= i; --j) {
if(strcmp(arr[j - 1].title, arr[j].title) > 0) {

memmove(&buffer, &arr[j - 1], sizeof(T));
memmove(&arr[j - 1], &arr[j], sizeof(T));
memmove(&arr[j], &buffer, sizeof(T));

}
}

printf("after:\n");
for(i = 0; i < 10; ++i)
printf("%10s (%f)\n", arr[i].title, arr[i].price);

return 0;
}


Цитата(Tribunal @ 11.10.2006 15:55)
и кстати как можно в тексте программы сравнить символьную величину с конкретным словом?
Смотри выше (функция strcmp из string.h... Я надеюсь, переписывать функции сравнения строк ты не будешь? unsure.gif )
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 9.05.2024 0:50
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name