Einführung
In diesem Labor lernen Sie, wie Sie den Modalwert einer Datenmenge in C bestimmen. Das Labor umfasst die folgenden Schritte:
Lesen des Zahlenarrays: Sie lernen, wie Sie ein Zahlenarray in C lesen, was der erste entscheidende Schritt zur Bestimmung des Modalwerts einer Datenmenge ist. Das Programm ermöglicht die Eingabe einer Reihe von Zahlen und bereitet diese für die Häufigkeitsanalyse vor.
Zählen der Häufigkeiten, um den häufigsten Wert zu finden: Sie modifizieren das vorherige Programm, um die Häufigkeiten jeder Zahl im Array zu zählen und den häufigsten Wert (Modalwert) zu identifizieren.
Ausgabe des Modalwerts: Schließlich geben Sie den Modalwert aus, der der Wert ist, der in der Datenmenge am häufigsten vorkommt.
Das Zahlenarray einlesen
In diesem Schritt lernen Sie, wie Sie ein Zahlenarray in C einlesen, ein entscheidender erster Schritt zur Bestimmung des Modalwerts einer Datenmenge. Wir erstellen ein C-Programm, das die Eingabe einer Reihe von Zahlen ermöglicht und diese für die Häufigkeitsanalyse vorbereitet.
Erstellen Sie zunächst eine neue C-Datei für unser Programm zur Modalwert-Berechnung:
cd ~/project
nano mode_calculation.c
Fügen Sie nun folgenden Code in die Datei ein:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int numbers[MAX_SIZE];
int n, i;
// Geben Sie die Anzahl der Elemente ein
printf("Geben Sie die Anzahl der Elemente ein (max %d): ", MAX_SIZE);
scanf("%d", &n);
// Geben Sie die Arrayelemente ein
printf("Geben Sie %d ganze Zahlen ein:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Geben Sie das eingegebene Array aus, um die Eingabe zu überprüfen
printf("Eingabe-Array: ");
for (i = 0; i < n; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
Kompilieren und führen Sie das Programm aus:
gcc mode_calculation.c -o mode_calculation
./mode_calculation
Beispielausgabe:
Geben Sie die Anzahl der Elemente ein (max 100): 5
Geben Sie 5 ganze Zahlen ein:
3 4 2 4 1
Eingabe-Array: 3 4 2 4 1
Lassen Sie uns die wichtigsten Teile dieses Codes aufschlüsseln:
#define MAX_SIZE 100legt eine maximale Grenze für das Array fest, um Überläufe zu vermeiden.scanf()wird verwendet, um die Anzahl der Elemente und die Arraywerte einzugeben.- Wir geben das Array aus, um zu überprüfen, ob die Eingabe korrekt erfasst wurde.
Der Code demonstriert die grundlegende Array-Eingabe in C, die für unseren Modalwert-Berechnungsprozess unerlässlich ist. In den nächsten Schritten erweitern wir dies, um Häufigkeiten zu zählen und den Modalwert zu bestimmen.
Häufigkeiten zählen, um den häufigsten Wert zu finden
In diesem Schritt modifizieren wir unser vorheriges Programm, um die Häufigkeiten jeder Zahl im Array zu zählen und den häufigsten Wert (Modalwert) zu ermitteln.
Öffnen Sie die vorhandene Datei und aktualisieren Sie den Code:
cd ~/project
nano mode_calculation.c
Ersetzen Sie den vorherigen Code durch die folgende Implementierung:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int numbers[MAX_SIZE];
int frequencies[MAX_SIZE] = {0};
int n, i, j, mode = 0, max_frequency = 0;
// Geben Sie die Anzahl der Elemente ein
printf("Geben Sie die Anzahl der Elemente ein (max %d): ", MAX_SIZE);
scanf("%d", &n);
// Geben Sie die Arrayelemente ein
printf("Geben Sie %d ganze Zahlen ein:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Zählen Sie die Häufigkeiten jeder Zahl
for (i = 0; i < n; i++) {
int count = 1;
for (j = 0; j < n; j++) {
if (i != j && numbers[i] == numbers[j]) {
count++;
}
}
frequencies[i] = count;
// Verfolgen Sie den Modalwert
if (count > max_frequency) {
max_frequency = count;
mode = numbers[i];
}
}
// Häufigkeiten ausgeben
printf("\nHäufigkeiten:\n");
for (i = 0; i < n; i++) {
printf("Zahl %d kommt %d Mal vor\n", numbers[i], frequencies[i]);
}
// Den Modalwert ausgeben
printf("\nModalwert: %d (kommt %d Mal vor)\n", mode, max_frequency);
return 0;
}
Kompilieren und ausführen des Programms:
gcc mode_calculation.c -o mode_calculation
./mode_calculation
Beispielausgabe:
Geben Sie die Anzahl der Elemente ein (max 100): 6
Geben Sie 6 ganze Zahlen ein:
2 3 4 2 2 5
Häufigkeiten:
2 kommt 3 Mal vor
3 kommt 1 Mal vor
4 kommt 1 Mal vor
2 kommt 3 Mal vor
2 kommt 3 Mal vor
5 kommt 1 Mal vor
Modalwert: 2 (kommt 3 Mal vor)
Wichtige Punkte in dieser Implementierung:
- Wir erstellen ein Array
frequencies, um die Anzahl jeder Zahl zu speichern. - Geschachtelte Schleifen zählen die Vorkommnisse jeder eindeutigen Zahl.
- Wir verfolgen den Modalwert, indem wir die maximale Häufigkeit verfolgen.
- Das Programm behandelt Fälle mit einem einzigen Modalwert.
Den Modalwert ausgeben
In diesem letzten Schritt erweitern wir unser Programm zur Modalwert-Berechnung, um mehrere Modalwerte zu handhaben und eine umfassendere Ausgabe statistischer Informationen zu liefern.
Öffnen Sie die vorhandene Datei und aktualisieren Sie den Code:
cd ~/project
nano mode_calculation.c
Ersetzen Sie den vorherigen Code durch die folgende Implementierung:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int numbers[MAX_SIZE];
int frequencies[MAX_SIZE] = {0};
int unique_numbers[MAX_SIZE];
int n, i, j, unique_count = 0, max_frequency = 0;
// Geben Sie die Anzahl der Elemente ein
printf("Geben Sie die Anzahl der Elemente ein (max %d): ", MAX_SIZE);
scanf("%d", &n);
// Geben Sie die Arrayelemente ein
printf("Geben Sie %d ganze Zahlen ein:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Finden Sie eindeutige Zahlen und ihre Häufigkeiten
for (i = 0; i < n; i++) {
int is_unique = 1;
for (j = 0; j < unique_count; j++) {
if (numbers[i] == unique_numbers[j]) {
is_unique = 0;
break;
}
}
if (is_unique) {
unique_numbers[unique_count] = numbers[i];
// Zählen Sie die Häufigkeit dieser eindeutigen Zahl
int count = 0;
for (j = 0; j < n; j++) {
if (numbers[i] == numbers[j]) {
count++;
}
}
frequencies[unique_count] = count;
// Aktualisieren Sie die maximale Häufigkeit
if (count > max_frequency) {
max_frequency = count;
}
unique_count++;
}
}
// Detaillierte Modalwertinformationen ausgeben
printf("\nStatistische Analyse:\n");
printf("Gesamtzahlen: %d\n", n);
printf("Eindeutige Zahlen: %d\n", unique_count);
printf("\nHäufigkeitsverteilung:\n");
for (i = 0; i < unique_count; i++) {
printf("Zahl %d: %d Mal(e)\n",
unique_numbers[i], frequencies[i]);
}
// Modalwerte ausgeben
printf("\nModalwert(e):\n");
for (i = 0; i < unique_count; i++) {
if (frequencies[i] == max_frequency) {
printf("- %d (kommt %d Mal vor)\n",
unique_numbers[i], frequencies[i]);
}
}
return 0;
}
Kompilieren und ausführen des Programms:
gcc mode_calculation.c -o mode_calculation
./mode_calculation
Beispielausgabe:
Geben Sie die Anzahl der Elemente ein (max 100): 7
Geben Sie 7 ganze Zahlen ein:
2 3 4 2 2 5 5
Statistische Analyse:
Gesamtzahlen: 7
Eindeutige Zahlen: 4
Häufigkeitsverteilung:
Zahl 2: 3 Mal(e)
Zahl 3: 1 Mal(e)
Zahl 4: 1 Mal(e)
Zahl 5: 2 Mal(e)
Modalwert(e):
- 2 (kommt 3 Mal vor)
Verbesserungen in dieser Version:
- Handhabung mehrerer Modalwerte, falls vorhanden
- Umfassende statistische Übersicht
- Identifizierung eindeutiger Zahlen in der Datenmenge
- Anzeige der Häufigkeitsverteilung
Zusammenfassung
In diesem Labor lernen Sie, wie Sie ein Zahlenarray in C einlesen und die Häufigkeiten jeder Zahl zählen, um den Modalwert, den häufigsten Wert im Datensatz, zu bestimmen. Zuerst erstellen Sie ein C-Programm, das die Eingabe einer Reihe von Zahlen ermöglicht und diese für die Häufigkeitsanalyse vorbereitet. Anschließend modifizieren Sie das Programm, um die Häufigkeiten jeder Zahl zu zählen und den Modalwert zu ermitteln. Schließlich geben Sie den Modalwert auf der Konsole aus.
Die wichtigsten Lernpunkte der abgeschlossenen Schritte sind:
- Wie man ein Zahlenarray in C mit der Funktion
scanf()einliest. - Wie man das eingegebene Array ausgibt, um die Eingabe zu verifizieren.
- Wie man die Häufigkeiten jeder Zahl im Array zählt, um den häufigsten Wert (Modalwert) zu finden.



