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

max i min

17.10.2013, 14:51. Показов 2985. Ответов 20
Метки нет (Все метки)

как такое сделать?



max i min
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2013, 14:51
Ответы с готовыми решениями:

Найти max и min, если min левее max, то среднее арифметическое между ними
#include <iostream.h> #include <stdio.h> #include <conio.h> #include <math.h> void main() {...

Даны целые числа а, b, с. Вычислить в-сумму у = min (a, b + c) + max (ac, b)-min (a2, c)
Даны целые числа а, b, с. Вычислить в-сумму у = min (a, b + c) + max (ac, b)-min (a2, c). Как эту...

Найти min(max(x, y), max(x, z), max(z, d)
Даны различные действительные числа x, y, z, d. Найти min(max(x, y), max(x, z), max(z, d)).

Найти max {min (a, b), min (c, d)}.
Найти max {min (a, b), min (c, d)}.

20
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,040
17.10.2013, 14:59 2
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
#include <iostream>
using namespace std;
 
double min(double &x,double &y)
{
if (x>y)
return y;
else
return x;
}
 
double max(double &x,double &y)
{
if (x>y)
return x;
else
return y;
}
 
int main()
{
double p,x,y,z;
cout<<"Please enter x,y,z\n";
cin>>x>>y>>z;
p=(min(x,y)-max(y,z))/2;
cout<<"p = "<<p<<endl;
cout<<"9 ne 4itau knig i ne xo4y"
"y4it's9, poetomy zada4i rewaut za men9";
return 0;
}
я модуль не заметил на картинке
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.10.2013, 15:18 3
dzrkot, а зачем изобретать min/max? Разберитесь, что есть в std, который Вы так резво используете. Не придется писать велосипеды.
0
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,040
17.10.2013, 15:22 4
Цитата Сообщение от Tulosba Посмотреть сообщение
dzrkot, а зачем изобретать min/max? Разберитесь, что есть в std, который Вы так резво используете. Не придется писать велосипеды.
надо бы, просто пишу под микроконтроллеры, поэтому такие вещи привык руками делать))
0
Форумчанин
Эксперт CЭксперт С++
8190 / 5040 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
17.10.2013, 15:32 5
Цитата Сообщение от dzrkot Посмотреть сообщение
if (x>y)
return y;
else
return x;
прочтите про тернарный оператор
C++
1
return x > y ? y : x;
с STL:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
#include <cmath>
 
double foo(const int x, const int y, const int z)
{
    return abs(std::min(x, y) - std::max(y, z)) / 2.0;
}
 
int main()
{
    int x, y, z;
    std::cin >> x >> y >> z;
    double p = foo(x, y, z);
    std::cout << p;
}
Tulosba, я думаю надо сначала бы самому написать нечто похожее, прежде чем использовать алгоритмы.
0
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,040
17.10.2013, 15:36 6
Цитата Сообщение от MrGluck Посмотреть сообщение
прочтите про тернарный оператор
C++
1
return x > y ? y : x;
я вообще-то в курсе что это) почему не использовал? забыл о нём вообще))
0
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 96
17.10.2013, 15:39  [ТС] 7
вот ,я разобралась,но почему выбивает
fatal error iostream no such file or directory

#include <iostream>
#include <conio.h>
#include <complex>
#include <math.h>



int main()
{
double x,y,z,a,b;
using namespace std;


cout<<"x=";
cin>>x;
cout<<"y=";
cin>>y;
cout<<"z=";
cin>>z;

if(x>y)
a=y;

else
a=x;

if(y>z)
b=y;

else
b=z;

p=(abs (a-b))/2;

cout<<"p="<<p<<endl<<"Press any key to finish...";


getch();
return 0;
}
0
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,040
17.10.2013, 15:41 8
у вас visual studio ? тогда #include "stdfx" ещё надо в начале

2)р необъявлен
0
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 96
17.10.2013, 15:43  [ТС] 9
нет ,не visual
Я открыла другую ,и она работает с iostream.а именно эта -нет
0
Форумчанин
Эксперт CЭксперт С++
8190 / 5040 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
17.10.2013, 15:49 10
Цитата Сообщение от Katya99 Посмотреть сообщение
#include <iostream>
C++
1
#include <iostream.h>
Видимо вы на борланде сидите
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.10.2013, 15:49 11
Цитата Сообщение от MrGluck Посмотреть сообщение
return abs(std::min(x, y) - std::max(y, z)) / 2.0;
А почему не std::abs() ?
Цитата Сообщение от MrGluck Посмотреть сообщение
я думаю надо сначала бы самому написать нечто похожее, прежде чем использовать алгоритмы.
Это кстати регулярная дилемма. Обычно не всегда понятно, что знает (должен знать) ТС для решения поставленной задачи. Поэтому мне кажется имеет смысл сначала предложить решение с учетом стандартной библиотеки (тем более, что тут не какой-то сложный для понимания новичком алгоритм), а уж потом, если ТС скажет: "мы этого не проходили", предложить ему рукописный вариант. Или еще какой на дефайнах
0
Форумчанин
Эксперт CЭксперт С++
8190 / 5040 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
17.10.2013, 15:50 12
Цитата Сообщение от Katya99 Посмотреть сообщение
Я открыла другую ,и она работает с iostream.а именно эта -нет
Не обижайтесь, но вас трудно понять, попробуйте строить предложения более осмысленно.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.10.2013, 15:52 13
Цитата Сообщение от dzrkot Посмотреть сообщение
просто пишу под микроконтроллеры, поэтому такие вещи привык руками делать))
Видимо не достаточно пишете. Иначе бы:
1. знали про тернарный оператор.
2. использовали бы скорее макросы MAX/MIN.
0
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 96
17.10.2013, 15:55  [ТС] 14
дело в том ,что я вставила в другую,где тоже иострим без h и там она работает.
0
Форумчанин
Эксперт CЭксперт С++
8190 / 5040 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
17.10.2013, 16:02 15
Цитата Сообщение от Tulosba Посмотреть сообщение
А почему не std::abs() ?
http://www.cplusplus.com/reference/complex/abs/
http://www.cplusplus.com/reference/cmath/abs/
Заметил интересную вещь, в описании cmath (и cstdlib) оно не из std. Хотя вроде бы, когда меняли с <*.h> на <c*> заключали функции в стандартное пространство имен.
Не знаю в чем профит std, если есть глобальная функция.

Кстати тут:
http://www.cplusplus.com/reference/cmath/abs/ она вроде как должна проходить по перегрузке double abs (T x), но тем не менее, вызывается int abs(int x), иначе бы при входных параметрах 2 2 3, если делить на 2 а не 2.0, выдавало бы 0.5 а не 0 (int/int)

Добавлено через 2 минуты
Цитата Сообщение от Tulosba Посмотреть сообщение
Или еще какой на дефайнах
макросы в С++ вы одобряете?)
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.10.2013, 16:08 16
Не очень понял, что я должен был вынести по ссылкам.
Цитата Сообщение от MrGluck Посмотреть сообщение
Не знаю в чем профит std, если есть глобальная функция.
В глобальном пространстве сишная сидит, которая не может иметь перегрузок.
Цитата Сообщение от MrGluck Посмотреть сообщение
иначе бы при входных параметрах 2 2 3 выдавало бы 0.5 а не 0 (int/int)
Снова не понял

Добавлено через 2 минуты
Цитата Сообщение от MrGluck Посмотреть сообщение
макросы в С++ вы одобряете?)
Это был пример того, какое решение может принять препод у ТС. В здравом уме использовать макрос, если его можно заменить иной сущностью, не стоит.
0
Форумчанин
Эксперт CЭксперт С++
8190 / 5040 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
17.10.2013, 16:17 17
Tulosba, на том сайте для abs из complex дописали пространство имен, а для abs из cstdlib и cmath нет:
max i min


Для кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
#include <cmath>
 
double foo(const int x, const int y, const int z)
{
    return abs(std::min(x, y) - std::max(y, z)) / 2; // int / int
}
 
int main()
{
    int x, y, z;
    std::cin >> x >> y >> z;
    double p = foo(x, y, z);
    std::cout << p;
}
При входных параметрах 2 2 3 (x = 2, y = 2, z = 3) результата будет 0 заместо должных 0.5 Это говорит о том, что вызовется вариант int abs(int x). Та же проблема будет если дописать пространство имен для abs.
0
Форумчанин
Эксперт CЭксперт С++
8190 / 5040 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
17.10.2013, 16:19 18
Если сможете объяснить суть профита std::abs перед abs в данной задаче, то был бы благодарен. Я не использовал std::abs потому как эту выгоду просто не знаю.
0
dzrkot
17.10.2013, 16:24
  #19

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Видимо не достаточно пишете. Иначе бы:
1. знали про тернарный оператор.
2. использовали бы скорее макросы MAX/MIN.
ой всё, я понял к чему вы клоните, я рукожоп, пойду убьюсь)))

0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.10.2013, 16:35 20
MrGluck, с интовыми аргументами проверять std::abs смысла конечно нет.
Предлагаю попробовать рассмотреть такой вариант:
C++
1
2
3
4
5
double foo(double x, double y, double z)
{
    return std::abs(std::min(x, y) - std::max(y, z)) / 2; // double / int
    return ::abs(std::min(x, y) - std::max(y, z)) / 2; // int / int
}
Добавлено через 9 минут

Не по теме:

Цитата Сообщение от dzrkot Посмотреть сообщение
ой всё, я понял к чему вы клоните, я рукожоп, пойду убьюсь)))
Лучше не стоит. А то мне доведение до суицида припишут :)

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2013, 16:35
Помогаю со студенческими работами здесь

Max(x,y,z) min(x,y,z) на c++
max(x,y,z) min(x,y,z) на c++ Добавлено через 47 секунд пожалуйста помогите!

min(x,y) max(x,y)
заданы действительные числа х, у. получить min(x,y) max(x,y)?

max min
Всем доброго времени суток. нужна ваша помощь ув. программеры. Дана целочисленная матрица размера...

Max и Min в Си++
сформировать одномерный массив целых чисел используя ДСЧ. расспечатать полученный массив поменять...


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

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

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