Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2010, 23:32   #1
iFireFly
Новичок
Джуниор
 
Аватар для iFireFly
 
Регистрация: 06.01.2010
Сообщений: 1
По умолчанию Простейшая задача на функцию со сменным количеством аргументов

Суть такова, готовлю лабы к экзамену по с++. Надеялся обойтись без источников... но увы не вышло.
Обращаюсь к публике:

Суть задачи: "Напишіть функцію sum зі змінною кількістю параметрів, яка знаходить суму додатних чисел типу int за формулою:S=a1*a2+a3*a4+a5*a6+. . . . ."(укр.)
"написать функцию sum со сменным количеством аргументов, которая находит сумму положительных чисел(выше ноля) типу int по формуле:
S=a1*a2+a3*a4+a5*a6+..."(рус.)

исходник того, что пока набросалось...

Код:
#include <iostream.h>
#include <conio.h>
 /*long summa(int a,...)
{int *pik=&a;
long total=0;
for(;a;a--)
total+=*(pik++);
return total;
 }
	void main()
	{clrscr();
	cout<<"\n summa(2, 6,4)="<< summa(2,6,4);
	cout<<"\n summa(6, 1,2,3,4,5,6)="<< summa(6,1,2,3,4,5,6);
	getch();
	}*/



    long summa(int a,...);
 {int aa=1, i=0;
 double *ptr=&a;

if (*ptr==0) return 0;		
for (; *ptr; ptr++) aa*=*ptr;
return aa;

 }
   void main()
  cout<<"\nS()="<<summa();
  cout<<"\nS()="<<summa();
  cout<<"\nS()="<<summa()<<endl;
  getch();
 }
проблема вот в чем: отдельно добавить или умножить у меня получается (см. выше), но вот сделать это в одной функции - никак не выходит...
Прошу помочь как-то соединить все написанное выше в одну функцию, или хоть подскажите каким методом двигать дальше этот код)

буду признателен
iFireFly вне форума Ответить с цитированием
Старый 07.01.2010, 12:21   #2
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Копай в сторону макро-опеределений в библиотеке stdarg.h

va_list, va_start, va_arg и va_end , с помощью них можно организовать функцию с переменными параметрами!
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на функцию и модлуль!!! Cheerful-mermaid Паскаль, Turbo Pascal, PascalABC.NET 0 11.04.2009 19:09
Задача на модуль и функцию в паскале Cheerful-mermaid Помощь студентам 1 09.04.2009 23:07
Типы аргументов при перегрузке функций Arkuz Общие вопросы C/C++ 4 24.02.2009 01:16
Задача про функцию dez2007 Помощь студентам 2 03.02.2009 18:46
задача на функцию СТАВКА student08 Microsoft Office Excel 1 17.01.2009 23:54