C :: Aufgabe #84
1 Lösung
Das Häufigste Element in einem Array
Anfänger - C
von klhlubek19
- 16.07.2015 um 13:46 Uhr
Schreiben Sie ein Programm, das aus einem Array das häufigste Element findet. Sollte es mehrere gleicher Anzahl finden, so darf irgend ein Element dieser Häufigsten ausgegeben werden.
Lösungen:
Konsolenausgabe:
./arraymax
Häufigster Wert im Array ist 87 (19 mal).
/************************************
* arraymax.c Häufigster Wert
************************************/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <limits.h>
#include <time.h>
#define MAX_INDEX 1000
#define MAX_WERT 100
int array_max_haeuf(int *a, int imax, int *anzahl) {
int ah[MAX_WERT+1];
int hmax=0, i, ih;
// ermittle Haeufigkeiten aller Elemente
memset(ah, 0, sizeof(int)*(MAX_WERT+1));
for (i=0; i<=imax; i++)
++ah[ a[i] ];
// suche maximale Haeufigkeit
for (i=0; i<=MAX_WERT; i++)
if (ah[i] > hmax)
hmax = ah[ih=i];
*anzahl = hmax;
return ih;
}
int main(void) {
int werte[MAX_INDEX];
int c, h, i;
// fill array with random values
srandom(time(NULL));
for (i=0; i<=MAX_INDEX; i++)
werte[i] = random() * MAX_WERT / RAND_MAX;
h = array_max_haeuf(werte, MAX_INDEX, &c);
printf("Häufigster Wert im Array ist %d (%d mal).\n", h, c);
return 0;
}
