/*************************************** ********/
/**/
/* Compile a Variable Parameter Function */
/* Xwlee 2006/12/4 */
/*************************************** ********/
# Include <stdio. h>
# Include <stdarg. h>
# Include <time. h>
Float average (INT n_values ,...);
Int main ()
{
Int I, a [10];
Srand (unsigned) Time (null ));
For (I = 0; I <10; ++ I)
A [I] = rand () %100;
For (I = 0; I <10; ++ I)
Printf ("A [% d] = % d/N", I, a [I]);
Printf ("average <01 >=% F/N ",
Average (1, a [0]);
Printf ("average <02 >=% F/N ",
Average (2, a [0], a [1]);
Printf ("average <03 >=% F/N ",
Average (3, a [0], a [1], a [2]);
Printf ("average <04 >=% F/N ",
Average (4, a [0], a [1], a [2], a [3]);
Printf ("average <05 >=% F/N ",
Average (5, a [0], a [1], a [2], a [3], a [4]);
Printf ("average <06 >=% F/N ",
Average (6, a [0], a [1], a [2], a [3], a [4], a [5]);
Printf ("average <07 >=% F/N ",
Average (7, a [0], a [1], a [2], a [3], a [4], a [5], A [6]);
Printf ("average <08 >=% F/N ",
Average (8, a [0], a [1], a [2], a [3], a [4], a [5], a [6], A [7]);
Printf ("average <09 >=% F/N ",
Average (9, a [0], a [1], a [2], a [3], a [4], a [5], a [6], A [7], a [8]);
Printf ("average <10 >=% F/N ",
Average (10, a [0], a [1], a [2], a [3], a [4], a [5], a [6], A [7], a [8], a [9]);
Getch ();
Return 0;
}
Float average (INT n_values ,...)
{
Va_list var_arg;
Int count;
Float sum = 0;
Va_start (var_arg, n_values );
For (COUNT = 0; count <n_values; count ++)
{
Sum + = va_arg (var_arg, INT );
}
Va_end (var_arg );
Return sum/n_values;
}