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

Выполнить одно из указанных пользователем арифметических действий над двумя числами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужно реализовать несколько ссылок http://www.cyberforum.ru/cpp-beginners/thread1077372.html
// вычисляет длину ASCII-строки (строка с нулем на конце) size_t strlen(const char* str); / // копирует source в destination и возвращает указатель на destination char* strcpy(char* destination, const char* source); // сравнивает строки лексикографически (как в телефонном справочнике). -1, если первая меньше второй, 0, если равны и 1, если первая больше второй int strcmp(const char*...
C++ Вывести элементы массива в виде таблицы и переставить его элементы местами Скажите каким образом переставляется двумерный массив ? К примеру : {1,2,3,4,5} мне нужно элементы поменять местами так чтобы последний (5) стал на место предпоследнего (4) и так со всеми элементами в массиве , у меня есть коды , там где я выводил мин./макс элемент в массиве (с этим более менее ясно) , а вот с перестановкой запутался ... Спасибо заранее. http://www.cyberforum.ru/cpp-beginners/thread1077368.html
C++ Придумать 10 задач на обработку исключительных ситуаций
Здравствуйте! Помогите, пожалуйста, придумать 10 задач на обработку исключительных ситуаций.
Создать динамический массив целого типа C++
Создать динамический массив целого типа на 100 элементов
C++ Ошибка при компиляции графа http://www.cyberforum.ru/cpp-beginners/thread1077353.html
всем привет. template <typename T> class Graf { public: template <typename T1> struct Edge {
C++ Проверка на наличие флешки char wRoot = "A:\\"; do { if (GetDriveType(wRoot) == DRIVE_REMOVABLE) { if (access(wRoot, 0) == 0) cout<<"SD Card found!\n"; else cout<<"SD Card not found!\n"; } } while (++*wRoot <= L'Z'); Этот код по идее должен проверять вставлена-ли sd карта. Если она НЕ вставлена,то выводит сообщение об ошибке, и выводит... подробнее

Показать сообщение отдельно
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
21.01.2014, 18:11     Выполнить одно из указанных пользователем арифметических действий над двумя числами
Вот немного извращения
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
#include <iostream>
#include <map>
 
#define OPS_TO_FUNC(name) name##func
 
#define CREATE_FUNCTION(name, op) \
    template <class T> \
    T OPS_TO_FUNC(name) (T left, T right) \
    { \
        return left op right; \
    }
 
enum Ops {Begin, Add, Sub, Mul, Div, End};
 
CREATE_FUNCTION (Add, +)
CREATE_FUNCTION (Sub, -)
CREATE_FUNCTION (Mul, *)
CREATE_FUNCTION (Div, /)
 
template <class T>
void init (std::map<Ops, T(*)(T, T)> &functions)
{
    functions[Add] = OPS_TO_FUNC(Add);
    functions[Sub] = OPS_TO_FUNC(Sub);
    functions[Mul] = OPS_TO_FUNC(Mul);
    functions[Div] = OPS_TO_FUNC(Div);
}
 
int main ()
{
    std::map<Ops, int(*)(int, int)> functions;
    init (functions);
 
    int left, right;
    std::cout << "Enter first operand: ";
    std::cin >> left;
    std::cout << "Enter second operand: ";
    std::cin >> right;
 
    std::cout << "Enter operation:\n\t1: +\n\t2: -\n\t3: *\n\t4: /\n";
 
    int operation = (int)Begin;
    do {
        std::cin >> operation;
    } while (!(operation > (int)Begin && operation < (int)End) &&
           std::cout << "Invalid input, repeat" << std::endl);
 
    std::cout << "Answer: " << functions[(Ops)operation](left, right) << std::endl;
}
 
Текущее время: 13:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru