C/C++

7.2ПОМОГИТЕ ПОЖАЛУЙСТА ПРАВИЛЬНО СДЕЛАТЬ С ++ ТОЛЬКО ЧТО БЫ БЫЛ КОД И ЗАПУСК ПРОГРАМЫ СКРИНОМ СПАСИБО КТО ОТВЕТИЛ.

КТО ПОМОГ НАПИШИТЕ СВОЙ НИК ОТ ТГ ИЛИ ИНСТ. ХОЧУ ОТБЛАГОДАРИТЬ

ЗАДАНИЯ
Решить указанную в варианте задачу, используя функции с переменным числом параметров.

7.Написать функцию max с переменным числом параметров, которая находит минимальное из чисел типа int или из чисел типа double , тип параметров определяется с помощью первого параметра функции. Написать вызывающую функцию main , обращающуюся к функции min не менее трех раз с количеством параметров 5, 10, 12.
>>> 7.Написать функцию MAX с переменным числом параметров, которая находит МИНИМАЛЬНОЕ из чисел типа int или из чисел типа double

<<< Зачем вам функция с именем max, должна искать минимальное значение? Разберитесь.

#include <algorithm>
#include <iostream>
using namespace std;
template<typename Type, typename... Args>
Type min(Args... args) {
auto seq = initializer_list<Type>({ args... });
return *min_element(seq.begin(), seq.end());
}
template<typename Type, typename... Args>
Type max(Args... args) {
auto seq = initializer_list<Type>({ args... });
return *max_element(seq.begin(), seq.end());
}
int main() {
cout << "int >>> ";
int a, b, c, d, e;
cin >> a >> b >> c >> d >> e;
const auto mni = min<int>(a, b, c, d, e);
const auto mxi = max<int>(a, b, c, d, e);
cout << "min int: " << mni << "\nmax int: " << mxi << '\n';
cout << "double >>> ";
double f, g, h, i, j;
cin >> f >> g >> h >> i >> j;
const auto mnd = min<double>(f, g, h, i, j);
const auto mxd = max<double>(f, g, h, i, j);
cout << "min double: " << mnd << "\nmax double: " << mxd << endl;
}
Радомир Гильмутдинов
Радомир Гильмутдинов
72 826
Лучший ответ
Ольга Петровна я не могу ничего сказать . так как это задания мне задали в таком виде. а вы правильно отправили код это к заданию ?
Илья Державин Николай Веселуха, тут для int и double используются функции с разными именами, а, насколько я понял, по условию "тип параметров определяется с помощью первого параметра функции". Я это обошел с помощью задания количества аргументов типами int и double, можно в принципе это обойти, задавая первый параметр всегда int и узнавая тип второго параметра, но тут уже черт ногу сломает, этот черт ИМХО уже вообще должен после написания функций с переменным числом параметров слегка прихрамывать - месье, придумавший правила их написания, явно знал толк в извращениях ;)
Довольно забавно называть возвращающую минимум функцию как max ;) Это чтобы супостатов из ЦРУ запутать? Но если так требуют...

#include <iostream>
#include <cstdarg>
using namespace std;
int max(int n, ...){
va_list f; va_start(f,n); int r=va_arg(f,int),k=r;
for(int i=1;i<n;i++)if(r>(k=va_arg(f,int)))r=k; va_end(f); return r;}

double max(double n, ...){
va_list f; va_start(f,n); double r=va_arg(f,double),k=r;
for(int i=1;i<n;i++)if(r>(k=va_arg(f,double)))r=k; va_end(f); return r;}

int main(){
cout<<max(10,5,12,21,13,4,5,6,7,8,10)<<endl;
cout<<max(5.,1.2,1.5,2.,3.,4.)<<endl;
cout<<max(12,5,12,21,13,9,5,6,7,8,10,10,10)<<endl;}
Владимир Блохин P.S. Так как вопрос был подправлен (вместо max - min), то заменить везде max на min.
Владимир Блохин Ан нет, не подправлен, просто функция в условии называется то так, то этак. Ну, всё равно, вместо max писать min.
Не, Николай как всегда правильно делает по последним стандартам. Но правильнее для студента так, как давали. Вам могли давать вот как тут http://xn--e1akicaccic2c.xn--p1ai/pdf/cppmingw/ch12-cpp-peremennoe-kolichestvo-parametrov.html только переделать под минимум или максимум. То бишь 1 параметр идет кол. переменных из которых будем искать минимум допустим, но вот если их будет больше, то проблемы. Вот у Николая то верно...но верно ли это для препода?
Ольга Петровна было бы хорошо что бы вы скинули сюда код . у меня ваша ссылка не грузит
буду благодарен
Владимир Блохин А препод пусть учится у Артемия Росляка (правда, это тут псевдоним Николая Веселухи) ;)