Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
4 / 7 / 1
Регистрация: 06.09.2017
Сообщений: 27
1

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

17.09.2017, 23:09. Показов 1094. Ответов 2
Метки нет (Все метки)

Задание: Добавьте к каждому введенному числу типа double единицу измерения; иначе говоря, введите значения, такие как10cm,2.5in,5ft или3.33m. Допустимыми являются четыре единицы измерения: cm, m, in, ft. Коэффициенты преобразования равны: 1m == 100cm, 1in == 2.54cm, 1ft == 12in. Индикаторы единиц измерения введите в строку.

Я в целях удобства решил использовать cm, m и km.
Программа выдает не правильные результаты, помогите найти ошибку. Она не хранит больше двух элементов в vector
Протестируйте, и вы поймете о чем я говорю
Заранее спасибо!

CODE
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
// LastExe - finding the maximal and minimal number from VECTOR
//
 
#include "stdafx.h"
#include "../../../../../std_lib_facilities.h"
 
int main()
{
    string a = "", value = "";
    vector<string> word; // Creating a vector for string
    vector<double> num; // Creating a vector for math numbers
    vector<double> mini;
    vector<double> maxi;
 
    double min = 1000, max = -1000; // Initilizing minimal and maximal value
 
    cout << "Enter the  number: ";
    while (cin >> a >> value) 
    {
        if (value != "cm" && value != "m" && value != "km")
        {
            cout << "Wrong value, enter 'cm, m or km'!";
            break;
        }   
 
        word.push_back(a);
        num.push_back(atof(a.c_str())); //atof(a.c_str()) - converting string to double!!!
 
        for (int i = 0; i < num.size(); i++)
        {
            if (value == "m")
            {
                if (min > num[i])
                {
                    min = num[i];
                }
                if (max < num[i])
                {
                    max = num[i];
                }
            }
            if (value == "cm")
            {
                if (min > num[i])
                {
                    min = num[i]/100;
                }
                if (max < num[i])
                {
                    max = num[i]/100;
                }
            }
            if (value == "km")
            {
                if (min > num[i])
                {
                    min = num[i] * 1000;
                }
                if (max < num[i])
                {
                    max = num[i] * 1000;
                }
            }
            cout << min << "m - minimal number\t" << max << "m - maximal number\n";
            system("pause");
            system("cls");
        }
    }
 
    system("pause");
    return 0;
}
0

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

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

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

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

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

1C 7.7 как добавить единицу измерения
Есть отчет созданый конструктором - описание запроса и печатная форма отчета в прикрепленных...

2
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 566
18.09.2017, 05:27 2
Быстренько пробежался глазами по коду , и нашел 1-у ошибку , ты присваиваешь типу double целочисленной значение.
Нужно так. Ну лично меня учили так, бывают ошибку из-за этого.
C++
1
double min = 1000.0
И зачем ты объявил эти вектора , если не использовал их?
C++
1
2
    vector<double> mini;
    vector<double> maxi;
0
Эксперт C
26086 / 16275 / 3495
Регистрация: 24.12.2010
Сообщений: 35,677
18.09.2017, 09:37 3
Цитата Сообщение от axela002 Посмотреть сообщение
нашел 1-у ошибку , ты присваиваешь типу double целочисленной значение.
Это ни в коем случае не ошибка. Транслятор достаточно умен, чтобы правильно интерпретировать такие присваивания.
Но, конечно, тестировать код нет никакого желания...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2017, 09:37

Как добавить единицу измерения для каждого товара в накладную?
Добрый день! Собственно, сам вопрос такой. В шаблонной конфигурации есть Расходная Накладная,...

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

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

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


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

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

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