3 Stimmen

Funktion mit variabler Anzahl von Parametern

Unter Berücksichtigung dieser Funktion

double avg(double v1,double v2,...)
{
    double sum=v1+v2;
    int counter=2;
    double temp;
    va_list pargs;
    va_start(pargs,v2);
    while((temp=va_arg(pargs,double))!=0.0)
    {
        sum+=temp;
        counter++;
    }
    va_end(pargs);
    return sum/counter;
}

Dieser Aufruf printf("%lf\n",avg(3.0,4.5,4.5,3.0,0.0)) liefert das richtige Ergebnis, aber wenn ich den letzten Parameter lösche 0.0 Es druckt -321738127312000000000.0000000 , aber Summe und Zähler haben die richtigen Werte. Ich verstehe irgendwie nicht, warum ich das überprüfen muss !=0.0 und haben den letzten Parameter 0.0

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X