naja nicht ganz, ich habs so verstanden, dass er werte aufzeichnet und dann aufaddiert und durch die anzahl teilen will ?! DAS ist natürlich unperformant

mir geht es um den echten mittelwert und nicht um das arithmetische mittel wegen der extremwerte .. problematsich ist aber dass der übliche weg zur mittelwertbestimmung über nen sortieralgo geht und das frisst zeit

ihc hab ne lösung die die auflösung auf den verfügbaren speicher begrenzt

was ich meine ist z.B. ein array mit 100mal 1byte

und über dann den index zu arbeiten mit einer einfachen addition um zeit zu sparen, anschließend noch das array durchzählen und man hat seinen mittelwert

ich erkläre es nochmal mit code, der letze satz geht nur mit viel fantasie

ein 100er-array für eine angabe von 0-100 Liter ohne komma

Code:
unsigned char maray[100];

while(messen)
{
    marray[getFüllstandInLiter()]++;
    count++;
    if(ausgabe) {
        unsigned in mid = count/2;
        for(int i = 0; i < 100; i++) {
            count-=marray[i];
            if(count < mid) {
                print(mid);
                clearArrayAndCounter();
            }
        }
    }
}