#include "stdafx.h"
#include <iostream>
using namespace std;
inline int d2i(double x) {
if (x<(double)INT_MIN || x>(double)INT_MAX) throw exception("Переполнение (double -> int)");
return int(x);
}
double sum(double a, ...)
{
int N = d2i(a);
double s, *p = (&a + 1);
for (s = 0; (N != 0)&&(*p != '\0'); N--, (int*)p++)
s += *p;
return(s);
}
void main() {
printf("sum1 = %f sum2 = %f\n", sum(8.0, 2.0, 56.0, 7.7, 1.0, 101.9, -55.5, 42.1, 0.0), sum(4.0, -46.0, -1.9, 7.0, 0.0));
system("pause");
}