C/C++

C . .

_ _(__,
			_ _, ...)

_ .

-


va_start()
va_arg()
va_end()
va_copy()

<stdarg.h>

type va_arg(va_list argptr, type);
void va_copy(va_list target, va_list source);
void va_end(va_list argptr);
void va_start(va_list argptr, last_parm);

va_arg, va_start va_end , . , , printf(). va_list <stdarg.h>( C++ <cstdarg>).

, , . ( ), . last_parm. va_start(). , argptr, va_start(). va_arg() type, . va_end(), . va_end() , .

sum_series(), . , . .

1     1     1      1          1
-  +  -  +  -  +    ...  +  -
2     4     8     16          2n

0.968750.

/*        . * /

#include <stdio.h>
#include <stdarg.h>

double sum_series(int, ...);

int main(void)
{
	double d;

	d = sum_series(5, 0.5, 0.25, 0.125, 0.0625, 0.03125);
	printf("   %f\n",d);

	return 0;
}

double sum_series(int num, ...)
{
	double sum = 0.0, t;
	va_list argptr;

	/*   argptr. */
	va_start(argptr, num);

	/*  . */
	for(; num; num--) {
		t = va_arg(argptr, double);
		sum += t;
	}

	/*   . */
	va_end(argptr);

	return sum;
}





Нет комментариев.



Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: