有一个功能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()函数只是一个例子,实函数比这个更复杂。
感谢您的快速回复。实际上,这只是一个示例函数,实际问题更加复杂,我必须使用预定义的函数,而不是创建自己的实现。 – tfengjun 2011-05-13 02:04:14
@tfengjun - @davmac建议除了传递指针之外,没有任何便携的方法可以做到这一点。祝你好运。 – Mahesh 2011-05-13 02:05:45
你能给我一个关于如何以*非便携*的方式处理它的提示吗?因为我的代码只能在Linux x86上运行。 – tfengjun 2011-05-13 02:12:12