Сортировка строк по алфавиту - C (СИ)
Формулировка задачи:
void alfavit() {int i,j; char m[25]; for(j=0;j<3;j++) for(i=0;i<3-j;i++) { if(strcmp(mas[i].name,mas[i+1].name)>0) {strcpy(m,mas[i].name); strcpy(mas[i].name,mas[i+1].name); strcpy(mas[i+1].name,m); } } }
Решение задачи: «Сортировка строк по алфавиту»
textual
Листинг программы
void sortname(struct_data *&uk, int &n)//struct_data - тип данных структуры, n - количество элементов структуры { struct_data tmp;//для временного хранения при сортировке for(int j=0; j<n; j++) { for(int i=0; i<n-1; i++) { if(stricmp(uk[i].name, uk[i+1].name)>0) { tmp = uk[i]; uk[i] = uk[i+1]; uk[i+1] = tmp; } } } }
Объяснение кода листинга программы
- Код имеет в своем составе функцию sortname, которая принимает два аргумента: указатель на структуру struct_data и целое число n, обозначающее количество элементов структуры.
- Внутри функции создается временная структура данных tmp для временного хранения данных при сортировке.
- Затем происходит два вложенных цикла: внешний цикл j для прохода по всем элементам структуры, внутренний цикл i для сравнения и перестановки элементов.
- Внутренний цикл i выполняется до тех пор, пока не будет просмотрено n-1 элементов структуры.
- Внутри внутреннего цикла i происходит сравнение строк с использованием функции stricmp. Если строка uk[i].name больше uk[i+1].name, то происходит обмен элементов с использованием временной структуры tmp.
- После завершения внутренних циклов i, происходит завершение внешнего цикла j.
- Возвращаемое значение функции sortname не указано.
- При вызове функции sortname передается указатель на первый элемент структуры uk и значение n.
- В результате выполнения функции sortname, элементы структуры uk будут отсортированы по алфавиту по полю name.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д