Форум программистов, компьютерный форум CyberForum.ru

max i min - C++

Восстановить пароль Регистрация
 
 
Katya99
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 96
17.10.2013, 14:51     max i min #1
как такое сделать?



max i min
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2013, 14:51     max i min
Посмотрите здесь:

C++ Max и min в матрице
C++ min(x,y) max(x,y)
max min C++
C++ Max и Min в Си++
C++ C++ max min
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
17.10.2013, 14:59     max i min #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;
}
я модуль не заметил на картинке
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.10.2013, 15:18     max i min #3
dzrkot, а зачем изобретать min/max? Разберитесь, что есть в std, который Вы так резво используете. Не придется писать велосипеды.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
17.10.2013, 15:22     max i min #4
Цитата Сообщение от Tulosba Посмотреть сообщение
dzrkot, а зачем изобретать min/max? Разберитесь, что есть в std, который Вы так резво используете. Не придется писать велосипеды.
надо бы, просто пишу под микроконтроллеры, поэтому такие вещи привык руками делать))
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
17.10.2013, 15:32     max i min #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, я думаю надо сначала бы самому написать нечто похожее, прежде чем использовать алгоритмы.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
17.10.2013, 15:36     max i min #6
Цитата Сообщение от MrGluck Посмотреть сообщение
прочтите про тернарный оператор
C++
1
return x > y ? y : x;
я вообще-то в курсе что это) почему не использовал? забыл о нём вообще))
Katya99
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 96
17.10.2013, 15:39  [ТС]     max i min #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;
}
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
17.10.2013, 15:41     max i min #8
у вас visual studio ? тогда #include "stdfx" ещё надо в начале

2)р необъявлен
Katya99
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 96
17.10.2013, 15:43  [ТС]     max i min #9
нет ,не visual
Я открыла другую ,и она работает с iostream.а именно эта -нет
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
17.10.2013, 15:49     max i min #10
Цитата Сообщение от Katya99 Посмотреть сообщение
#include <iostream>
C++
1
#include <iostream.h>
Видимо вы на борланде сидите
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.10.2013, 15:49     max i min #11
Цитата Сообщение от MrGluck Посмотреть сообщение
return abs(std::min(x, y) - std::max(y, z)) / 2.0;
А почему не std::abs() ?
Цитата Сообщение от MrGluck Посмотреть сообщение
я думаю надо сначала бы самому написать нечто похожее, прежде чем использовать алгоритмы.
Это кстати регулярная дилемма. Обычно не всегда понятно, что знает (должен знать) ТС для решения поставленной задачи. Поэтому мне кажется имеет смысл сначала предложить решение с учетом стандартной библиотеки (тем более, что тут не какой-то сложный для понимания новичком алгоритм), а уж потом, если ТС скажет: "мы этого не проходили", предложить ему рукописный вариант. Или еще какой на дефайнах
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
17.10.2013, 15:50     max i min #12
Цитата Сообщение от Katya99 Посмотреть сообщение
Я открыла другую ,и она работает с iostream.а именно эта -нет
Не обижайтесь, но вас трудно понять, попробуйте строить предложения более осмысленно.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.10.2013, 15:52     max i min #13
Цитата Сообщение от dzrkot Посмотреть сообщение
просто пишу под микроконтроллеры, поэтому такие вещи привык руками делать))
Видимо не достаточно пишете. Иначе бы:
1. знали про тернарный оператор.
2. использовали бы скорее макросы MAX/MIN.
Katya99
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 96
17.10.2013, 15:55  [ТС]     max i min #14
дело в том ,что я вставила в другую,где тоже иострим без h и там она работает.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
17.10.2013, 16:02     max i min #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 Посмотреть сообщение
Или еще какой на дефайнах
макросы в С++ вы одобряете?)
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.10.2013, 16:08     max i min #16
Не очень понял, что я должен был вынести по ссылкам.
Цитата Сообщение от MrGluck Посмотреть сообщение
Не знаю в чем профит std, если есть глобальная функция.
В глобальном пространстве сишная сидит, которая не может иметь перегрузок.
Цитата Сообщение от MrGluck Посмотреть сообщение
иначе бы при входных параметрах 2 2 3 выдавало бы 0.5 а не 0 (int/int)
Снова не понял

Добавлено через 2 минуты
Цитата Сообщение от MrGluck Посмотреть сообщение
макросы в С++ вы одобряете?)
Это был пример того, какое решение может принять препод у ТС. В здравом уме использовать макрос, если его можно заменить иной сущностью, не стоит.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
17.10.2013, 16:17     max i min #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.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
17.10.2013, 16:19     max i min #18
Если сможете объяснить суть профита std::abs перед abs в данной задаче, то был бы благодарен. Я не использовал std::abs потому как эту выгоду просто не знаю.
dzrkot
17.10.2013, 16:24
  #19

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2013, 16:35     max i min
Еще ссылки по теме:

C++ Найти max {min (a, b), min (c, d)}.
C++ Даны целые числа а, b, с. Вычислить в-сумму у = min (a, b + c) + max (ac, b)-min (a2, c)
C++ Найти max и min, если min левее max, то среднее арифметическое между ними

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.10.2013, 16:35     max i min #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 Посмотреть сообщение
ой всё, я понял к чему вы клоните, я рукожоп, пойду убьюсь)))
Лучше не стоит. А то мне доведение до суицида припишут

Yandex
Объявления
17.10.2013, 16:35     max i min
Ответ Создать тему
Опции темы

Текущее время: 01:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru