使用可變數目的參數列表

#include <stdio.h>
#include <stdarg.h>
float average(int num, ...);

int main(void){
  float x;
  x = average(10,1,2,3,4,5,6,7,8,9,10);
  printf("\nThe first average is %.2f.", x);
  x = average(5,121,206,76,31,5);
  printf("\nThe second average is %.2f.\n", x);
  return (0);
}

float average(int num, ...){
  //聲明一個va_list類型的變量 
  va_list arg_ptr;
  int count, total = 0;
  
  //初始化參數指針 
  va_start(arg_ptr, num);
  
  //從可變參數列表中取回每個參數
  for(count = 0; count < num; count++){
    total += va_arg(arg_ptr, int);
  }
  
  //執行清理
  va_end(arg_ptr);
  return((float)total / num); 
}
相關文章
相關標籤/搜索