/***********************************************/
/* */
/* 编写可变参数的函数 */
/* 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;
}