Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kate_miss
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 59
#1

Функцию со списком аргументов переменной длины, подсчитать произведение чисел - C++

27.10.2010, 15:58. Просмотров 828. Ответов 4
Метки нет (Все метки)

ПОМОГИТЕ Написать программу, содержащую функцию со списком аргументов переменной длины. В функции необходимо подсчитать произведение чисел.
ПОДСКАЖИ С ЧЕГО НАЧИНАТЬ.....никогда не сталкивалась с функциями!!!!!!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2010, 15:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функцию со списком аргументов переменной длины, подсчитать произведение чисел (C++):

Списки аргументов переменной длины, эти аргументы должны быть исключительно типа "int"? - C++
Действительно: #include <stdio.h> #include <stdarg.h> int foo (char* k,...) { va_list ap; va_start (ap, k); char x=...

В последовательности вещественных чисел подсчитать произведение чисел, кратных 3 - C++
В последовательности вещественных чисел подсчитать произведение чисел, кратных 3.

Написать функцию вычисления произведения отрицательных чисел для трех целых аргументов - C++
Написать функцию вычисления произведения отрицательных чисел для трех целых аргументов. Написать операторы вызова функции, с помощью ...

Написать функцию, возвращающую максимальное из двух целых чисел, полученных в качестве аргументов - C++
1)Написать функцию, которая возвращает максимальное из двух целых чисел, полученных в качестве аргумента. (функции) #include <iostream.h>...

Запишите функцию для вычисления произведения целых чисел из диапазона от а до в. найдите произведение чисел, диапазон ввести с клавиатуры. В С++ - C++
Запишите функцию для вычисления произведения целых чисел из диапазона от а до в. найдите произведение чисел, диапазон ввести с клавиатуры....

Использование using над списком шаблонных аргументов переменного типа - C++
Здравствуйте! Мне необходимо определить alias для списка шаблонных аргументов. Т. е. template<typename ... T> class S { ...

4
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
27.10.2010, 16:14 #2
Например так... В конце последовательности должен быть 0...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <cstdarg>
 
int func(int num, ...)
{
    int mult=1, t;
    va_list args;
    va_start(args, num);
    while(1)
    {
        t=va_arg(args, int);
        if(t==0)
            break;
        mult*=t;
    }
    va_end(args);
    return mult;
}
 
int main()
{
    std::cout<<func(1,2,3,4,0)<<'\n';
    return 0;
}
1
kate_miss
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 59
27.10.2010, 16:50  [ТС] #3
нно не понимаю кк работает(((((((( можно немного комментариев????? пожалуйста
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
27.10.2010, 16:56 #4
Сам не особо в этом... Но как-то так.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <cstdarg>//Для переменного числа параметров
 
int func(int num, ...)//Функция которая принимает параметр типа int и еще несколько параметров
{
        int mult=1, t;
        va_list args;//Список аргументов
        va_start(args, num);//Начало в параметрах список и первый известный аргумент
        while(1)//Бесконечный цикл
        {
                t=va_arg(args, int);//Считываем аргумент типа int в список, после чего записываем его в t
                if(t==0)//Если t=0 прекращаем выполнение
                        break;
                mult*=t;//Умножаем mult на аргумент
        }
        va_end(args);//Заканчиваем 
        return mult;//Возвращаем mult
}
 
int main()
{
        std::cout<<func(1,2,3,4,0)<<'\n';//Пишем результат от функции. При 0 выполнение заканчивается.
        return 0;
}
1
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
27.10.2010, 17:07 #5
Можно еще и так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int product(int i, ...)
{
    int* pointer = &i;
    int result = 1;
    while(*pointer)
        result *= *pointer++;
    return result;
}
 
int main()
{
    printf("Product = %d\n", product(1, 2, 3, 4, 0));
    return 0;
}
2
27.10.2010, 17:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2010, 17:07
Привет! Вот еще темы с ответами:

Найти произведение всех положительных чисел массива и подсчитать количество отрицательных - C++
Найти произведение всех положительных чисел массива { a i}, где i=1,2,...,13, и подсчитать количество отрицательных чисел

Составить функцию которая вычисляет произведение 2 чисел - C++
Составить функцию которая вычисляет произведение 2 чисел. Можете написать полностью задачу. int f(int a,int b) { return a*b; }

Составить функцию, которая вычисляет произведение 2 чисел - C++
Составить функцию которая вычисляет произведение 2 чисел

Написать функцию, которая возвращает произведение двух целых чисел - C++
Помогите, что то я не могу понять задачи, даже не знаю с чего начать)))) 1. Написать функцию, которая возвращает произведение двух целых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru