Einführung
In diesem Projekt lernst du, wie du eine Liste von Programmierkursen mit dem Bubblesort-Algorithmus organisierst. Die Kurse werden in alphabetischer Reihenfolge sortiert, was es dir ermöglicht, die Programmiersprachen, die du gelernt hast, leicht zu sehen und zu zusammenfassen.
👀 Vorschau
$ gcc courses.c -o courses
$./courses
ASP
ASP.NET
BASIC
C
C#
C++
COBOL
JAVA
PASCAL
PHP
🎯 Aufgaben
In diesem Projekt wirst du lernen:
- Wie man die Länge eines Arrays richtig berechnet
- Wie man den Parametertyp einer Sortierfunktion modifiziert
- Wie man die Vergleichs- und Vertauschlogik im Sortieralgorithmus korrigiert
🏆 Errungenschaften
Nach Abschluss dieses Projekts wirst du in der Lage sein:
- Eine Liste von Programmierkursen mit dem Bubblesort-Algorithmus zu organisieren
- Die Wichtigkeit der richtigen Berechnung der Arraylänge und der Funktionsparametertypen zu verstehen
- Die richtige Vergleichs- und Vertauschlogik in einem Sortieralgorithmus anzuwenden
- Deine Fähigkeit, Schritt-für-Schritt-Anweisungen zu befolgen und vorhandenen Code zu modifizieren, um das gewünschte Ergebnis zu erzielen
Korrektur der Arraylängenberechnung
In diesem Schritt lernst du, wie du die Länge des courses-Arrays richtig berechnest.
Öffne die Datei
courses.c, die sich im Verzeichnis/home/labex/project/befindet.Suche die folgende Zeile des Codes:
int n = strlen(courses);Diese Zeile verwendet die
strlen-Funktion, um die Länge descourses-Arrays zu berechnen, was falsch ist. Diestrlen-Funktion wird verwendet, um die Länge eines Strings zu berechnen, nicht eines Arrays.Ersetze die obige Zeile durch die folgende:
int n = sizeof(courses) / sizeof(courses[0]);Diese Zeile verwendet den
sizeof-Operator, um die Gesamtgröße descourses-Arrays zu berechnen und dividiert sie dann durch die Größe eines einzelnen Elements, um die Anzahl der Elemente im Array zu erhalten.
Ändern des Parametertyps der Sortierfunktion
In diesem Schritt lernst du, wie du den Parametertyp der sort-Funktion ändern kannst.
In der Datei
courses.cfinde die Definition dersort-Funktion:void sort(char p[], int n)Ändere den Parametertyp von
char p[]zuchar *p[]. Die aktualisierte Funktionsdefinition sollte so aussehen:void sort(char *p[], int n)Diese Änderung ist erforderlich, da wir es mit einem Array von Zeichenketten (einem Array von Zeigern) zu tun haben, nicht mit einer einzelnen Zeichenkette.
Korrigieren der Vergleichs- und Vertauschlogik
In diesem Schritt lernst du, wie du die Vergleichs- und Vertauschlogik in der sort-Funktion korrigierst.
In der
sort-Funktion finde den folgenden Code:if (k!= j) { tmp = p[k]; p[k] = p[i]; p[i] = tmp; }Ersetze die Bedingung
if (k!= j)durchif (k!= i). Der aktualisierte Code sollte so aussehen:if (k!= i) { tmp = p[k]; p[k] = p[i]; p[i] = tmp; }Diese Änderung ist erforderlich, um zu überprüfen, ob das kleinste Element in der aktuellen Iteration (indiziert durch
i) gefunden wurde.
Nach Abschluss dieser drei Schritte sollte deine courses.c-Datei für die Kompilierung und Ausführung bereit sein. Du kannst nun mit dem nächsten Schritt fortfahren.
In der
sort-Funktion vervollständige den Abschnitt// TODO:wie folgt:{ if (strcmp(p[j], p[k]) < 0) { k = j; } }Führe den folgenden Befehl aus:
gcc courses.c -o courses
./courses
- Verifiziere, dass das Programm die erwarteten Ausgabe liefert.
ASP
ASP.NET
BASIC
C
C#
C++
COBOL
JAVA
PASCAL
PHP
Zusammenfassung
Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.



