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

Шаблон функции для удвоения максимального значения из трех аргументов - C++

Восстановить пароль Регистрация
 
darius_man
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 5
16.11.2012, 20:25     Шаблон функции для удвоения максимального значения из трех аргументов #1
Написать программу, которая использует шаблон функции для удвоения максимального значения из трех аргументов. Проверьте программу, используя тройки целых чисел, чисел с плавающей точкой и символов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 20:25     Шаблон функции для удвоения максимального значения из трех аргументов
Посмотрите здесь:

Напишите программу, которая использует шаблон функции для определения наименьшего из двух аргументов. C++
C++ Шаблон с переменным числом аргументов, и возвращаемое значение функции
C++ Шаблон функции поиска максимального элемента
C++ Шаблон функции для удвоения максимального значения
C++ Сумма элементов массива до максимального. Создать шаблон функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Eugine
 Аватар для Eugine
3 / 3 / 0
Регистрация: 10.11.2012
Сообщений: 63
16.11.2012, 20:54     Шаблон функции для удвоения максимального значения из трех аргументов #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
#include <iostream>
using namespace std;
template<typename Type> void func(Type& arg1, Type& arg2, Type& arg3)
{
    if(arg1 < arg2) {
        if(arg2 > arg3)
            arg2 *= 2;
        else
            arg3 *= 2;
    } else {
        if(arg1 > arg3)
            arg1 *= 2;
        else
            arg3 *= 2;
    }
}
int main(int argc, char* argv[])
{
    int a = 2, b = 4, c = 3;
    cout << a << " " << b << " " << c << endl;
    func<int>(a,b,c);
    cout << a << " " << b << " " << c << endl;
    return 0;
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
16.11.2012, 20:57     Шаблон функции для удвоения максимального значения из трех аргументов #3
C++
1
2
3
4
5
6
7
template <typename T>
void max3(T& a, T& b, T& c){
if ((a>=b)&&(a>=c)) a*=2;
else
if ((b>=a)&&(b>=c)) b*=2;
else c*=2;
}
darius_man
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 5
16.11.2012, 21:27  [ТС]     Шаблон функции для удвоения максимального значения из трех аргументов #4
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
#include "locale.h"
using namespace std;
template <class T>
T maximum(T value1, T value2, T value3)
{
    if  (value1>value2 && value2>value3) return 2*value1;
    else if (value2>value3 && value3>value1) return 2*value2;
    else if (value3>value2 && value2>value1) return 2*value3;
    else if (value1>value3 && value3>value2) return 2*value1;
    else if (value3>value1 && value1>value2) return 2*value3;
    else if (value2>value1 && value1>value3) return 2*value2;
}
 
int main()
{   setlocale(LC_ALL,"rus");
    int x1,x2,x3;
    cout <<"Введите три целых числа: ";
for (;;)
{   cin >> x1;
if ((x1>0)||(x1<0)) break;
    else {
        cout<<"Некорректный ввод!Давай еще разок";
        cin.clear();
        cin.sync();
};
}
for (;;)
{
    cin >> x2;
    if ((x2>0)||(x2<0)) break;
    else {
        cout<<"Некорректный ввод!Давай еще разок";
        cin.clear();
        cin.sync();
}
}
for (;;)
{
    cin >> x3;
    if ((x3>0)||(x3<0)) break;
    else {
        cout<<"Некорректный ввод!Давай еще разок";
        cin.clear();
        cin.sync();
}
}
    cout <<"Удвоенный максимум равен="
         <<maximum(x1,x2,x3);
 
float t1,t2,t3;
    cout <<"Введите три веществееных  числа: ";
for (;;)
{   cin >> t1;
if ((t1>0)||(t1<0)) break;
    else {
        cout<<"Некорректный ввод!Давай еще разок";
        cin.clear();
        cin.sync();
};
}
for (;;)
{
    cin >> t2;
    if ((t2>0)||(t2<0)) break;
    else {
        cout<<"Некорректный ввод!Давай еще разок";
        cin.clear();
        cin.sync();
}
}
for (;;)
{
    cin >> t3;
    if ((t3>0)||(t3<0)) break;
    else {
        cout<<"Некорректный ввод!Давай еще разок";
        cin.clear();
        cin.sync();
}
}
    cout <<"Удвоенный максимум равен="
        <<maximum(t1,t2,t3);
 
char c1,c2,c3;
    cout <<"Введите символы: ";
for (;;)
{   cin >> c1;
if (c1>0) break;
    else {
        cout<<"Некорректный ввод!Давай еще разок";
        cin.clear();
        cin.sync();
};
}
for (;;)
{
    cin >> c2;
    if (c2>0) break;
    else {
        cout<<"Некорректный ввод!Давай еще разок";
        cin.clear();
        cin.sync();
}
}
for (;;)
{
    cin >> c3;
    if (c3>0) break;
    else {
        cout<<"Некорректный ввод!Давай еще разок";
        cin.clear();
        cin.sync();
}
}
    cout <<"Удвоенный максимум равен="
         <<maximum(x1,x2,x3);
}
Yandex
Объявления
16.11.2012, 21:27     Шаблон функции для удвоения максимального значения из трех аргументов
Ответ Создать тему
Опции темы

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