Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 134
1

Написать функцию с переменным числом параметров

13.02.2017, 00:03. Показов 3605. Ответов 8
Метки нет (Все метки)

Задание дали такое: Написать функцию с переменным числом параметров, в соответствии с вариантом, продемонстрировать вызов функции с различным числом параметров.
По варианту: Количество чётных элементов в списке параметров.
Объясните пожалуйста, что это значит, и как выполнить задание?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2017, 00:03
Ответы с готовыми решениями:

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

Написать функцию с переменным числом параметров
Написать функцию с переменным числом параметров, которая считае значение полинома вида: c0 + c1*x +...

Написать функцию min с переменным числом параметров
Написать функцию min с переменным числом параметров, которая находит минимальное из чисел типа int...

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

8
Модератор
Эксперт .NET
5797 / 4677 / 2937
Регистрация: 20.04.2015
Сообщений: 8,340
13.02.2017, 00:26 2
Remdzhem,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<initializer_list>
int even_count(std::initializer_list<int>);
int main()
{
    std::initializer_list<int> args = {1,2,3,4,5,6,7,8,-4,-6}; //список параметров
    std::cout << even_count(args);
    return 0;
}
 
int even_count(std::initializer_list<int> lst) //функция, принимающая список параметров
{
    int count=0;
    for (auto beg=lst.begin(); beg!=lst.end(); beg++)
        if(!(*beg%2)) count++;
    return count;
}
0
Велосипедист...
351 / 218 / 73
Регистрация: 15.12.2015
Сообщений: 785
13.02.2017, 00:50 3
Даценд, Я думаю, речь идет о перегрузке функций...

Добавлено через 1 минуту
А, нет, ошибся
0
Модератор
1638 / 1092 / 487
Регистрация: 17.07.2012
Сообщений: 5,344
13.02.2017, 06:33 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int even_count(int x) {
    return x % 2 == 0;
}
 
template <typename... T>
int even_count(int x, T... rest) {
    return (x % 2 == 0) + even_count(rest...);
}
 
int main() {
    std::cout << even_count(1, 2, 3, 4, 4, 4, 5, 6, 6, 5); // 6
}
1
Любитель чаепитий
3583 / 1683 / 519
Регистрация: 24.08.2014
Сообщений: 5,704
Записей в блоге: 1
13.02.2017, 06:57 5

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
template<typename... Args>
int countEven(Args&&... args)
{
    int ret = 0;
    
    int dummy[] { std::forward<Args>((ret += !(args & 1), 0))... };
    (void)dummy;
    
    return ret;
}
 
int main()
{
    std::cout << countEven(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10);
}
1
3750 / 2698 / 619
Регистрация: 08.06.2007
Сообщений: 9,280
Записей в блоге: 4
13.02.2017, 11:11 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
int evenpar (int kol, ... ) {
    int *ptr;
    ptr=&kol;
    int n=0;
    for (; kol>0; kol--) {
        ptr++;
        if((*ptr)%2 == 0) n++;
    }
    return n;
}
 
int main() {
    cout << evenpar(0) << endl;
    cout << evenpar(3,4,4,2) << endl;
    cout << evenpar(5,2,3,4,5,6) << endl;
    cout << evenpar(4,3,3,3,3) << endl;
    cout << evenpar(8,-6,3,4,5,0,7,4,1) << endl;
    return 0;
}
Добавлено через 3 минуты
Первый параметр содержит количество параметров, которое надо проверить на четность. Можно организовать по-другому: использовать какое-нибудь число в качестве признака конца. Но это если такое число заведомо не встретится среди параметров.
1
Don't worry, be happy
17166 / 10050 / 1934
Регистрация: 27.09.2012
Сообщений: 25,039
Записей в блоге: 1
13.02.2017, 11:57 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//clang 3.8.0
 
#include <iostream>
 
 
template<typename ... Args>
unsigned int foo(Args ... args)
{
    return (static_cast<unsigned int>(!(args % 2)) + ...);
}
 
 
 
int main()
{
    std::cout << foo(1, 2, 3, 4, 5, 6, 8, 4) << std::endl;
}
http://rextester.com/GNAFX88165
2
Эксперт С++
1597 / 929 / 777
Регистрация: 06.02.2016
Сообщений: 2,414
Записей в блоге: 29
13.02.2017, 17:30 8
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
template <typename...Args>
int Codd(Args&&...args) {
    int c {0};
    auto l= {forward<Args>(args)...};
    for(const auto &i:l) if(i%2==0) ++c; return c;
}
int main() {
    cout << Codd(1, 2, 3, 4, 5, 6, 8, 4,3,4,2);
}
0
Любитель чаепитий
3583 / 1683 / 519
Регистрация: 24.08.2014
Сообщений: 5,704
Записей в блоге: 1
13.02.2017, 17:41 9
Peoples, Ваш код сломается, если передать int и, к примеру, unsigned int.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2017, 17:41

Написать функцию с переменным числом параметров, находящую минимальное из чисел типа int
Помогите и объясните: Написать функцию fmin с переменным числом параметров, которая находит...

Написать функцию с переменным числом параметров, найти сумму чисел по заданной формуле
помогите решить указанную задачу, используя функции с переменным числом параметров. 1. Написать...

Написать функцию с переменным числом параметров для перевода чисел из десятичной системы счисления в двоичную
Написать функцию с переменным числом параметров для перевода чисел из десятичной системы счисления...

Написать функцию mult с переменным числом параметров, которая находит произведение чисел типа float
Прошу помочь в следующем. Есть задание: Написать функцию mult с переменным числом параметров,...

Написать функцию sum с переменным числом параметров, которая находит сумму чисел типа int
Написать функцию sum с переменным числом параметров, которая находит сумму чисел типа int. Написать...

Написать функцию sum с переменным числом параметров, которая находит сумму чисел типа int по формуле: S=a1*a2+a3*a4+a5*a
Всем доброго времени суток! Дана следующая задача: Написать функцию sum с переменным числом...


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

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

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