グループ数の平均数を求める(可変パラメータリストを利用する)


テーマ:一組の数の平均数を求めて、
要求:可変パラメータリストを使用して、
可変パラメータリストの役割:任意の複数のパラメータを処理できます.
可変パラメータリストの実装方法:
可変パラメータのリストは、stdargに定義マクロによって実現される.hヘッダファイルでは、標準ライブラリの一部です.このヘッダファイルはタイプvaを宣言します.Listと3つのマクロva_start、va_Argとva_end.
va_というタイプを宣言できますlistの変数は、これらのマクロと組み合わせて使用され、パラメータにアクセスします.
各変数の役割:
vaを宣言listタイプの変数arg.パラメータリストの未確定部分にアクセスするために使用されます.この変数はva_を呼び出します.startは初期化され、最初のパラメータはva_です.listの変数名、2番目のパラメータは省略記号の前の最後の名前のあるパラメータです.初期化プロセスはarg変数を可変パラメータ部分を指す最初のパラメータに設定します.パラメータにアクセスするにはva_を使用する必要があります.arg、このマクロは2つのパラメータを受け入れます:va_list変数とパラメータリストの次のパラメータのタイプ.この例では、すべての可変パラメータが整数です.va_argはこのパラメータの値を返し、va_を使用します.argは次の可変パラメータを指す.最後に、最後の可変パラメータにアクセスした後、va_を呼び出す必要があります.end.
サンプルコードは次のとおりです.
#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>
int average(int val, ...)
{
	va_list arg;
	int count = 0;
	int sum = 0;
	va_start(arg, val);
	for (count = 0; count < val; count++)
	{
		sum = sum + va_arg(arg, int);
	}
	va_end(arg);
	return sum / val;
}
int main()
{
	int let = average(3, 1, 4, 4);
	printf("    :%d
", let); system("pause"); return 0; }

間違いがあれば、ご指摘ください.ありがとうございます.