Функции с переменным числом параметров: объяснить код - C (СИ)
Формулировка задачи:
#include <iostream>
#include <math.h>
using namespace std;
int sum(int k, ...)
{
int s = 0, *p = &k+1 ;//настроили указатель на параметр k
for (int t=0;t<k-1;t++)
{
if(!(t%2))
s+=(*p)*(*(p+1));
else s+=(*(p)*(*(p+1)));
p++;
}
return s;
}
int main()
{
cout << sum(5,2,1,4,3,5)<< endl;//2*1-1*4+4*3-3*5=2-4+12-15=-5
cout << sum(10,1,1,1,4,2,6,3,1,2,2) << endl;
cout << sum(12,0,1,6,0,1,5,8,2,5,4,2,0) << endl;
return 0;
}if(!(t%2))
s+=(*p)*(*(p+1));
else s+=(*(p)*(*(p+1)));
p++;Решение задачи: «Функции с переменным числом параметров: объяснить код»
textual
Листинг программы
else s-=(*(p)*(*(p+1)));