有一个函数avg(int, ...)
,它计算输入整数的平均数量,
avg(1,2,3) = 2, avg(2,3,4,5,6) = 4
现在我有一个整数数组,需要使用 avg()
来获取它们的平均值,
但数组的大小是动态的,可以从 stdin 或文件中读取。
代码示例:
int i, num;
scanf("%d", &num);
int *p = malloc(num * sizeof(int));
for(i = 0; i < num; ++i)
scanf("%d", &p[i]);
// what should I do now?
// avg(p[0], p[1],....)
请注意,avg()
函数只能调用一次。
--已编辑--
avg() 函数只是一个示例,实际函数比这更复杂。
最佳答案
没有可移植的方法来做到这一点。大多数情况下,当存在可变参数函数时,还有一个直接接受数组参数的变体。
关于c - 如何将可变参数传递给接受可变参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5986485/