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

Даны действительные числа a,b,c. Получить: max(a,a+b) + max (a,b+c) ...

21.05.2013, 12:18. Показов 5536. Ответов 13
Метки нет (Все метки)

Даны действительные числа a,b,c. Получить: max(a,a+b) + max (a,b+c) ) / ( 1+max(a+bc,b,15)) на С++.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2013, 12:18
Ответы с готовыми решениями:

Даны действительные числа A, B, C. Получить max(a,a+b)+max(a,b+c,a+b) \ 1+max(ab,bc)+max(a+bc,15,ac)
Всем привет)Помогите пожалуйста написать в С++ Даны действительные числа A, B, C. Получить...

Даны действительные числа x, y, z. Получить max(x + y, z, xyz)
Всем доброго времени суток. Посмотрите пожалуйста, почему он игнорирует вывод варианта Z=max ? ...

Даны натуральное число n, действительные числа a1,...,an. Получить: max (-a1,a2,-a3,...,(-1)nan)
Даны натуральное число n, действительные числа a1,...,an. Получить: max (-a1,a2,-a3,...,(-1)nan);

Даны натуральное число n, действительные числа A1.An. Получить: min(A2,A4,.)+max(A1,A3,.)
Ребят, помогите решить без использования массивов

13
501 / 350 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
21.05.2013, 12:52 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <algorithm>
 
template <typename T>
max(const T& one, const T& two, const T& three)
{
     return std::max(std::max(one, two), three);
}
 
int main()
{
    int a, b, c;
    std::cin >> a >> b >> c;
    
    int ret = (std::max(a, a + b) + std::max(a, b + c)) / (1 + max(a + b * c,  b, 15));
 
    std::cout << ret;
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 41
21.05.2013, 12:57  [ТС] 3
Спаибо) но вот здесь max(const T& one, const T& two, const T& three) выдает ошибку
0
60 / 45 / 12
Регистрация: 07.10.2011
Сообщений: 139
21.05.2013, 13:00 4
C++
1
T& max(const T& one, const T& two, const T& three)
0
501 / 350 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
21.05.2013, 13:02 5
Писал на лету. Вот проверенная.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
 
template <typename T>
T max(const T& one, const T& two, const T& three)
{
     return std::max(std::max(one, two), three);
}
 
int main()
{
    int a, b, c;
    std::cin >> a >> b >> c;
    
    int ret = (std::max(a, a + b) + std::max(a, b + c)) / (1 + max<int>(a + b * c,  b, 15));
 
    std::cout << ret << std::endl;
    std::cin.get();
 
    return 0;
}
Добавлено через 1 минуту
yleart, Вы возвращаете ссылку на локальную переменную. Будьте внимательней), впрочем как и я)
0
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 41
21.05.2013, 13:05  [ТС] 6
Спасибо вам большое выручили=)
0
What a waste!
1606 / 1298 / 180
Регистрация: 21.04.2012
Сообщений: 2,724
21.05.2013, 13:07 7
Цитата Сообщение от stima Посмотреть сообщение
возвращаете ссылку на локальную переменную
Тут нет вроде локальных переменных, ссылки же в аргументах. Только возвращать надо константную.
0
501 / 350 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
21.05.2013, 16:07 8
2gray_fox, Как это нет?) Будьте внимательней

C++
1
2
3
4
5
6
7
8
9
T bar()
{
return T();
}
 
T& foo()
{
    return bar();
}
0
What a waste!
1606 / 1298 / 180
Регистрация: 21.04.2012
Сообщений: 2,724
21.05.2013, 16:14 9
stima, где здесь
C++
1
2
3
4
5
template <typename T>
T max(const T& one, const T& two, const T& three)
{
     return std::max(std::max(one, two), three);
}
создание локальных переменных? Я не вижу )

Добавлено через 3 минуты
ну т.е. если так написать
C++
1
2
3
4
5
template <typename T>
T const& max(const T& one, const T& two, const T& three)
{
     return std::max(std::max(one, two), three);
}
0
501 / 350 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
21.05.2013, 16:36 10
Во первых обратите внимание yleart написал возврат T&, а не T.
Во вторых, если не будет задействован RVO, std::max вернет обьект, время жизни которого функция max. Для лучшего понимания
C++
1
2
3
4
5
6
template <typename T>
T& max(const T& one, const T& two, const T& three) //обратите внимание на ссылку
{
     T ret = std::max(std::max(one, two), three);
     return ret;
}
п.с. T const& (тоже что и const T&) говорит лишь о константности, а не времени жизни.
0
What a waste!
1606 / 1298 / 180
Регистрация: 21.04.2012
Сообщений: 2,724
21.05.2013, 16:55 11
Цитата Сообщение от stima Посмотреть сообщение
Во первых обратите внимание yleart написал возврат T&, а не T.
Поэтому я и написал
Цитата Сообщение от gray_fox Посмотреть сообщение
Только возвращать надо константную.
Цитата Сообщение от stima Посмотреть сообщение
Для лучшего понимания
Хорошо, здесь
Цитата Сообщение от stima Посмотреть сообщение
C++
1
2
T ret = std::max(std::max(one, two), three);
return ret;
создаётся локальная переменная ret, я и не спорю, что возвращать ссылку на локальную переменную некорректно; но где же здесь
C++
1
return std::max(std::max(one, two), three);
создание локальной переменной\временного объекта?
0
501 / 350 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
21.05.2013, 18:23 12
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
#include <iostream>
 
struct A
{
    A()
    {
    std::cout << "construct was called" << std::endl;
    }
    
    A(const A& other)
    {
    std::cout << "copy construct was called" << std::endl;
    }
 
    A& operator=(const A& other)
    {
    std::cout << "assigment operator was called" << std::endl;
    }
};
 
A foo()
{
    return A();
}
 
A bar()
{
    return foo();
}
 
int main()
{
    bar();
    std::cin.get();
        
    return 0;
}
g++ -fno-elide-constructors main.cpp -o a.out && ./a.out.
0
What a waste!
1606 / 1298 / 180
Регистрация: 21.04.2012
Сообщений: 2,724
21.05.2013, 18:51 13
stima, круто конечно) но вы меня не поняли, видимо, я про это такое:
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
#include <iostream>
#include <algorithm> 
 
struct A
{
    A(int value) : value(value)
    {
       std::cout << "construct was called" << std::endl;
    }
    
    A(const A& other) : value(other.value)
    {
       std::cout << "copy construct was called" << std::endl;
    }
 
    A& operator=(const A& other)
    {
       value = other.value;
       std::cout << "assigment operator was called" << std::endl;
       return *this;
    }
 
    int value;
};
 
bool operator <(A const& lhs, A const& rhs) {
   return lhs.value < rhs.value;
}
 
template<typename T>
T const& max(T const& first, T const& second, T const& third) {
   return std::max(std::max(first, second), third);
}
 
int main() {
   A a(1), b(3), c(7);
   A const& result = max(a, b, c);
   std::cout << result.value << std::endl;
}
Здесь же не будет копирования, какие проблемы вернуть ссылку?
0
501 / 350 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
21.05.2013, 19:17 14
Виноват ... std::max() возвращает ссылку на один из аргументом. Я думал там копия.^^
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2013, 19:17

Даны натуральное число n, действительные числа A1,A2,...,An.Получить:min(A1 , A3 , ...) + max(A2 , A4 , ...)
Даны натуральное число n, действительные числа A1,A2,...,An.Получить:min(A1 , A3 , ...) + max(A2 ,...

Даны натуральные числа k,n действительные числа a1,...,akn. Получить: max(a1+...+ak,ak+1+...+a2k,ak(n-1)+1+...+akn);
Всем здрастье! Может кто пояснить как это делается: Даны натуральные числа k,n действительные...

Даны натуральное n, действительные А1, А2, ... An. Получить: min(A1,A3,...)+max(A2,A4,...)
минимум(A1,A3,....)+максимум(A2,A4....) Добавлено через 1 минуту если быть точнее то...

Даны действительные числа x1,.x20. Вычислить: max (х1+х20,х2+х19,.х10+х11)
Даны действительные числа x1,...x20. Вычислить: max(х1+х20,х2+х19,...х10+х11) Не могу написать...


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

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

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