使用变长的参数列

使用变长的参数列

使用变长的参数列

文章目录

  • 使用变长的参数列


/*程序名:fig14_02.c*/
/*
     使用变长的参数列
*/

#include  //标准输入输出头文件
#include 

/*计算平均值*/
double average(int i,...)
{
     double total = 0;
     va_list ap;//保存va_list和vz_end所需的信息
     va_start(ap,i);//初始化va_list对象

     /*处理变长的参数列*/
     for (int j = 1;j <= i;j++)
     {
          total += va_arg(ap,double);
     }
     va_end(ap);//清空变长的参数列

     return total/ i;
}

/*程序开始*/
int main(void)
{
     double w = 37.5;
     double x = 22.5;
     double y = 1.7;
     double z = 10.2;

     printf("%s%.1f\n%s%.1f\n%s%.1f\n%s%.1f\n",
          "w = ",w,"x = ",x,"y = ",y,"z = ",z);
     printf("%s%.3f\n%s%.3f\n%s%.3f\n",
          "w,x的平均值=",average(2,w,x),
          "w,x,y的平均值=",average(3,w,x,y),
          "w,x,y,z的平均值=",average(4,w,x,y,z));

     return 0;//程序结束
}//main函数结束


你可能感兴趣的:(C,C++答疑知识汇总,windows,服务器,linux)