Введение
В этом проекте вы научитесь организовывать список курсов по программированию с использованием алгоритма сортировки методом пузырька. Курсы будут отсортированы в лексикографическом порядке, что позволит вам легко увидеть и обобщить языки программирования, которые вы изучали.
👀 Предварительный просмотр
$ gcc courses.c -o courses
$./courses
ASP
ASP.NET
BASIC
C
C#
C++
COBOL
JAVA
PASCAL
PHP
🎯 Задачи
В этом проекте вы научитесь:
- Как правильно вычислять длину массива
- Как изменить тип параметра функции сортировки
- Как исправить логику сравнения и обмена в алгоритме сортировки
🏆 Достижения
После завершения этого проекта вы сможете:
- Организовать список курсов по программированию с использованием алгоритма сортировки методом пузырька
- Разобраться в важности правильного вычисления длины массива и типов параметров функций
- Применить правильную логику сравнения и обмена в алгоритме сортировки
- Показать свою способность следовать пошаговым инструкциям и изменять существующий код, чтобы достичь желаемого результата
Исправьте вычисление длины массива
В этом шаге вы научитесь правильно вычислять длину массива courses.
Откройте файл
courses.c, расположенный в директории/home/labex/project/.Найдите следующую строку кода:
int n = strlen(courses);Эта строка использует функцию
strlenдля вычисления длины массиваcourses, что неправильно. Функцияstrlenиспользуется для вычисления длины строки, а не массива.Замените вышеуказанную строку на следующую:
int n = sizeof(courses) / sizeof(courses[0]);Эта строка использует оператор
sizeofдля вычисления общего размера массиваcourses, а затем делит его на размер одного элемента, чтобы получить количество элементов в массиве.
Измените тип параметра функции сортировки
В этом шаге вы научитесь изменять тип параметра функции sort.
В файле
courses.cнайдите определение функцииsort:void sort(char p[], int n)Измените тип параметра с
char p[]наchar *p[]. Обновленное определение функции должно выглядеть так:void sort(char *p[], int n)Это изменение необходимо, потому что мы работаем с массивом строк (массивом указателей), а не с одной строкой.
Исправьте логику сравнения и обмена
В этом шаге вы научитесь исправлять логику сравнения и обмена в функции sort.
В функции
sortнайдите следующий код:if (k!= j) { tmp = p[k]; p[k] = p[i]; p[i] = tmp; }Замените условие
if (k!= j)наif (k!= i). Обновленный код должен выглядеть так:if (k!= i) { tmp = p[k]; p[k] = p[i]; p[i] = tmp; }Это изменение необходимо, чтобы проверить, был ли найден наименьший элемент на текущей итерации (индексируемой
i).
После завершения этих трех шагов ваш файл courses.c должен быть готов к компиляции и выполнению. Теперь вы можете перейти к следующему шагу.
В функции
sortзавершите раздел// TODO:следующим образом:{ if (strcmp(p[j], p[k]) < 0) { k = j; } }Выполните следующую команду:
gcc courses.c -o courses
./courses
- Проверьте, что программа выводит ожидаемый результат.
ASP
ASP.NET
BASIC
C
C#
C++
COBOL
JAVA
PASCAL
PHP
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



