有一個功能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