Сортировка строк по алфавиту - 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;
            }
        }
    }
}

Объяснение кода листинга программы

  1. Код имеет в своем составе функцию sortname, которая принимает два аргумента: указатель на структуру struct_data и целое число n, обозначающее количество элементов структуры.
  2. Внутри функции создается временная структура данных tmp для временного хранения данных при сортировке.
  3. Затем происходит два вложенных цикла: внешний цикл j для прохода по всем элементам структуры, внутренний цикл i для сравнения и перестановки элементов.
  4. Внутренний цикл i выполняется до тех пор, пока не будет просмотрено n-1 элементов структуры.
  5. Внутри внутреннего цикла i происходит сравнение строк с использованием функции stricmp. Если строка uk[i].name больше uk[i+1].name, то происходит обмен элементов с использованием временной структуры tmp.
  6. После завершения внутренних циклов i, происходит завершение внешнего цикла j.
  7. Возвращаемое значение функции sortname не указано.
  8. При вызове функции sortname передается указатель на первый элемент структуры uk и значение n.
  9. В результате выполнения функции sortname, элементы структуры uk будут отсортированы по алфавиту по полю name.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5