#include
int main()
{
/*
Zu Beginn wird der zu untersuchende Array (hier arr) deklariert
und initialisiert.
*/
int arr[] = {5, 19, 2, 9, 16, 23, 2, 9, 16};
// Dann wird die Länge des Arrays bestimmt.
int length = sizeof(arr)/sizeof(arr[0]);
/*
Anschließend wird ein Array (hier freq) gleicher Größe wie arr,
um die Häufigkeiten der Elemente zu speichern, deklariert.
*/
int freq[length];
/*
Mithilfe der Variable visited werden mehrfach Zählungen desselben
Elements verhindert, der Variable wird der Wert -1 zugewiesen.
*/
int visited = -1;
/*
Mit zwei ineinander geschachtelten Schleifen wird die Häufigkeit
eines Elements gezählt. Zuerst wird das Element ausgewählt, und dann
mit dem Rest des Arrays verglichen.
*/
for(int i = 0; i < length; i++){
/*
Die Zählung erfolgt über die Variable count, die mit dem Wert 1 startet.
Wenn beim Vergleich ein doppeltes Element gefunden wird, erhöht sich
der Wert von count um eins.
*/
int count = 1;
for(int j = i+1; j < length; j++){
if(arr[i] == arr[j]){
count++;
/*
Mithilfe der Variable werden die Elemente als bereits
besucht markiert.
*/
freq[j] = visited;
}
}
if(freq[i] != visited)
/*
Die Anzahl der einzelnen Elemente wird in dem Array freq
gespeichert.
*/
freq[i] = count;
}
/*
Hier folgt die Ausgabe der Elemente (Element) und ihrer
Häufigkeit (Frequency)
*/
printf("---------------------\n");
printf(" Element | Haeufigkeit\n");
printf("---------------------\n");
for(int i = 0; i < length; i++){
if(freq[i] != visited){
printf(" %d", arr[i]);
printf(" | ");
printf(" %d\n", freq[i]);
}
}
printf("---------------------\n");
return 0;
}