Функции с переменным числом параметров: объяснить код - 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)));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы