Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
5 / 4 / 1
Регистрация: 14.02.2018
Сообщений: 580
1

Добавьте к каждому введенному числу типа doube единицу измерения

13.08.2019, 13:13. Показов 508. Ответов 2
Метки нет (Все метки)

Добавьте к каждому введенному числу типа douЫe единицу измерения Допустимыми являются четыре единицы измерения: cm, m, in, ft. Примите следующие коэффициенты преобразования: lm = lOOcm,
1in = 2.54cm, 1ft == 12in. Индикатор единицы измерения вводите в
строку. Можно считать ввод 12 m (с пробелом между числом и единицей измерения) эквивалентным вводу 12m (без пробела)
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
void f() {
    double num = 0, m, cm, in, ft;
    char unit = ' ';
    while (cin >> num >> unit) {
        cout << "Вы ввели число: " << num << " " << unit << endl;
        switch (unit) {
        case 'm':
            cout << num * 100 << "cm\n";
            break;
        case 'cm':
            cout << num * 0.01 << "m " << num / 2.54 << "in\n";
            break;
        case 'in':
            cout << num * 2.54 << "cm " << num / 12 << "ft\n";
            break;
        case 'ft':
            cout << num * 12 << "in " << (num * 12) *2.54 << "cm " << ((num * 12) *2.54) * 100 << "m";
            break;
        default:
            cout << "Вы ввели не правильную меру длины!";
            break;
        }
    }
    
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.08.2019, 13:13
Ответы с готовыми решениями:

Добавить к каждому введённому числу типа double единицу измерения
Здравствуйте. Уже долго бьюсь над эти заданием и никак не могу понять как его делать. вот условие...

Добавить к введенному числу единицу измерения
Задание: Добавьте к каждому введенному числу типа double единицу измерения; иначе говоря, введите...

Прибавить единицу к введенному числу и вывести результат
Начал изучать Ruby по этому сайту http://www.shokhirev.com/mikhail/ruby/ltp/Chapter04.html Так...

Добавить к каждому числу единицу и вывести конечное
Добрый день, сразу объясню в чём задача имеются числа, к примеру: 1 2 3 4 5 6 7 8 9 10 Нужно...

2
93 / 78 / 23
Регистрация: 19.10.2013
Сообщений: 480
13.08.2019, 13:57 2
Во-первых, вы unit создаёте размером под один символ, а пытаетесь вставить туда больше.
Во-вторых, switch тут недопустим, вам нужно что-то вроде strcmp.
В-третьих, одинарные кавычки используются для записи только одного символа, т.е. 'ab' - это некорректная запись.

У вас должно быть что-то вроде этого
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void f() {
    double num = 0;
    char unit[2];
    while (cin >> num >> unit) {
        cout << "Вы ввели число: " << num << " " << unit << endl;
 
        if (strcmp(unit, "m") == 0) {
            cout << "метры" << endl;
        }
        else if (strcmp(unit, "cm") == 0) {
            cout << "сантиметры" << endl;
        }
        ...
    }
}
1
567 / 406 / 132
Регистрация: 22.11.2017
Сообщений: 1,043
13.08.2019, 16:08 3
ElKros, привет!
Держи код на словаре.

Кликните здесь для просмотра всего текста

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
#include <iostream>
#include <map>
#include <functional>
#include <sstream>
#include <string>
 
using oss_t = std::ostringstream;
 
int main()
{
    setlocale(LC_ALL, "Rus");
 
    std::map<std::string, std::function<std::string(double)>> rules
    {
        { "m", [](auto value) { oss_t oss; oss << value * 100 << "cm\n";  return oss.str(); } },
        { "cm", [](auto value) { oss_t oss; oss << value * 0.01 << "m " << value / 2.54 << "in\n"; return oss.str(); } },
        { "in", [](auto value) { oss_t oss; oss << value * 2.54 << "cm " << value / 12 << "ft\n"; return oss.str(); } },
        { "ft", [](auto value) { oss_t oss; oss << value * 12 << "in " << (value * 12) * 2.54 << "cm " << ((value * 12) * 2.54) * 100 << "m\n"; return oss.str(); } }
    };
    for (;;)
    {
        std::cout << "Введите значение и единицу измерения из предусмотренных:\n";
        for (const auto& rule : rules)
            std::cout << rule.first << " ";
        std::cout << "\nИли число и несуществующую единицу измерения для завершения программы\n";
        double val;
        std::string unit;
        std::cin >> val >> unit;
        std::cout << "Вы ввели число: " << val << " " << unit << "\n";
        if (rules.count(unit))
            std::cout << rules[unit](val);
        else
            break;
        std::cout << "\n";
    }
 
    return 0;
}
0
Миниатюры
Добавьте к каждому введенному числу типа doube единицу измерения  
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.08.2019, 16:08

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Создать 2 двунаправленных списка элементов целого типа и поиск в них чисел соответствующих числу введенному с клавиатуры
создать 2 двунаправленный список элементов целого типа и поиск в них чисел соответствующих числу...

Добавьте к каждому из элементов массива максимальный элемент
Пользователь вводит числовой массив А , состоящий из n натуральных элементов . Добавьте к каждому...

По введенному числу от 1 до 7 назвать соответствующий числу день недели
Решить задачу с использованием оператора выбора. По введенному числу от 1 до 7 назвать...

Задать единицу измерения.
Hi All! Может не совсем точно отобразил суть проблемы в заголовке темы. Вот что мне нужно - задать...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.