#include <stdio.h>
#define ANSI
#ifdef ANSI
#include <stdarg.h>
int average( int first, ... );
#else
#include <varargs.h>
int average( va_list );
#endif
int main( void )
{
printf( "Average is: %d\n", average( 2, 3, 4, -1 ) );
printf( "Average is: %d\n", average( 5, 7, 9, 11, -1 ) );
printf( "Average is: %d\n", average( -1 ) );
}
#ifdef ANSI
int average( int first, ... )
{
int count = 0, sum = 0, i = first;
va_list marker;
va_start( marker, first );
while( i != -1 )
{
sum += i;
count++;
i = va_arg( marker, int);
}
va_end( marker );
return( sum ? (sum / count) : 0 );
}
#else
int average( va_alist )
va_dcl
{
int i, count, sum;
va_list marker;
va_start( marker );
for( sum = count = 0; (i = va_arg( marker, int)) != -1; count++ )
sum += i;
va_end( marker );
return( sum ? (sum / count) : 0 );
}
#endif