0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 2
1

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

27.06.2016, 14:17. Показов 1545. Ответов 5

Нужно создать шаблонную функцию, которая возвращает максимум из двух, трех или четырех элементов.
Не очень понимаю как написать функцию, которая принимает несколько параметров.
Буду очень благодарна, если напишите пример такой функции.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2016, 14:17
Ответы с готовыми решениями:

Шаблоны: написать функцию, которая ищет произведение среди двух, трех и четырех целых и действительных чисел
Написать функцию dob, которая ищет произведение среди двух, трех и четырех целых и действительных...

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

написать функцию с одним аргументом – списком. Если функция из п. а) возвращает t, создать список из четырех элементов:
Всем привет! Задание: а) Напишите функцию, единственный аргумент которой является списком....

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

5
Don't worry, be happy
17780 / 10544 / 2035
Регистрация: 27.09.2012
Сообщений: 26,514
Записей в блоге: 1
27.06.2016, 14:19 2
Цитата Сообщение от iv_dasha Посмотреть сообщение
Не очень понимаю как написать функцию, которая принимает несколько параметров.
Параметры через запятую перечислить:
C++
1
2
3
4
int foo(int first, int second)
{
   //...
}
0
Модератор
Эксперт CЭксперт С++
5107 / 4538 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
27.06.2016, 14:38 3
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
25
26
27
28
#include <stdio.h>
#include <stdarg.h>
 
double f(int n, double a, ...)
{   
    va_list p;  
    double max;
    double temp;
 
    va_start(p, n);
    max = va_arg(p,double);
    n--;
    
    while(n--)             
    {
        temp = va_arg(p,double);
        if (max < temp)
            max = temp;
    }
    va_end(p);
    return (max);
}
 
int main()
{
    double max = f(3, 1.2, 3.2, 1.0);
    return 0;
}
1
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 2
27.06.2016, 14:43  [ТС] 4
спасибо большое!
0
2058 / 1591 / 678
Регистрация: 27.07.2012
Сообщений: 4,768
27.06.2016, 14:51 5
Лучший ответ Сообщение было отмечено CheshireCat как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template <class T>
T max(T a, T b)
{
    return a > b ? a : b;
}
 
template <class T>
T max(T a, T b, T c)
{
    return max(max(a, b), c);
}
 
template <class T>
T max(T a, T b, T c, T d)
{
    return max(max(a, b, c), d);
}
1
Don't worry, be happy
17780 / 10544 / 2035
Регистрация: 27.09.2012
Сообщений: 26,514
Записей в блоге: 1
27.06.2016, 15:27 6
Такая вот фиговина:
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//g++  4.9.3
 
#include <iostream>
#include <type_traits>
 
 
 
namespace details
{
    template<typename ... Args>
    struct SFoo;
 
 
 
    template<typename T, typename ... Args>
    struct SFoo<T, Args...>
    {
        static auto f(const T& arg1, const Args& ... args)
        {
            return SFoo<std::common_type_t<T,Args>...>::f((arg1>args?arg1:args)...);
        }
    };
 
 
 
 
    template<typename T>
    struct SFoo<T>
    {
        static T f(const T& arg1)
        {
            return arg1;
        }
    };
 
}//namespace details
 
 
template<typename ... Args>
auto tmax(const Args&... args)
{
    
    return details::SFoo<Args...>::f(args...);
}
 
 
 
int main()
{
    std::cout << tmax(45, 65, 89, 98, 66, 75, 13) << std::endl;
}
http://rextester.com/DVAWRK74668
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.06.2016, 15:27
Помогаю со студенческими работами здесь

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

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

Сделать функцию, которая принимает одномерный массив и возвращает индексы трех его самых больших элементов(сортировку не использовать), указателями
Сделать функцию, которая принимает одномерный массив и возвращает индексы трех его самых больших...

Создать функцию, которая выводит на печать и возвращает сумму n элементов ряда
Дан ряд целых чисел, каждый элемент которого является квадратом предыдущего элемента: 1 2 4 16 ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru