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