0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 23
1

Простой калькулятор на С++

13.07.2018, 17:21. Показов 6733. Ответов 4

Хотел написать простой калькулятор выполняющий деление двух введённых чисел и выводящий их частное.
Столкнулся с проблемой, когда делал проверку делителя на 0. По задумке если второе введённое число имело значение 0, то
нам должны предлагать ввести его ещё раз до тех пор пока его значение не будет равно 0. Я знаю, что я могу использовать еще один оператор if для проверки значения, но для меня стало не понятным, почему даже когда вы вводим число не равное 0, то
цикл всё равно продолжается?! Ведь условие b == 0 становится неверным и цикл должен завершится!

Пожалуйста просветите меня!

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
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int a, b;
 
    cout << "Введите первое число: ";
    cin >> a;
 
    cout << "Введите второе число: ";
    cin >> b;
 
    cout << endl;
 
    if(b == 0)      //Проверка делителя
    {
        for(b == 0; ;)  //Вводить делитель пока его значение не будет равно 0
        {
            cout << "Введите повторно второе число: ";
            cin >> b;
        }   //Бесконечный цикл
    }
 
    cout << a << " / " << b << " = " << a / b << endl;
 
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.07.2018, 17:21
Ответы с готовыми решениями:

Простой калькулятор и калькулятор с парсингом
Ребят я совсем не давно только начал изучать сишку, решил написать простенький калькулятор который...

простой калькулятор
#include &lt;iostream&gt; using namespace std; void sloganie () { int a, b; cout &lt;&lt; &quot;Введите...

Простой калькулятор
Здравствуйте у меня проблема с нахождением ошибки #include &lt;iostream&gt; using namespace std; int...

Простой консольный калькулятор
Я новичок, изучаю C++ всего первый день, начал изучение по книге Либерти &quot;C++ за 21 день&quot;. Пока что...

4
1463 / 1005 / 455
Регистрация: 30.10.2017
Сообщений: 2,793
13.07.2018, 17:30 2
Лучший ответ Сообщение было отмечено RainyDay как решение

Решение

23я строка

C++
1
for (; b == 0; )
А лучше

C++
1
while (b == 0)

Строки 21, 22, 28 с таким циклом внутри ни на что не влияют, можно удалить.
1
7421 / 5016 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
13.07.2018, 22:59 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream> 
using namespace std;
 
int main()
{    
    double a, b;
 
    cout << "a=";
    cin >> a;
    
    do
    {
    cout << "b=";
    cin >> b;
    if (b==0) cout <<"You can not divide by zero !!! Repeat please..."<< endl;
    }
    while (b==0); 
 
    cout << a << " / " << b << " = " << a / b << endl;
 
system("pause");
return 0;
}
0
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 23
15.07.2018, 10:29  [ТС] 4
Спасибо! понял!

Структура цикла for выглядит так:

C++
1
2
3
4
for(Присвоение счетчику начальное значение; Конечное значение; Шаг цикла )
{
    Тела цикла;
}
Моя запись выглядела так:

C++
1
for(b == 0 (начальное значение); (а это конечное)   ;)
Получилось так, что я не поставил условия завершения цикла!!!

Если сделать так, то всё работает!

C++
1
for(; b == 0;)
0
0 / 0 / 0
Регистрация: 18.09.2019
Сообщений: 88
18.03.2020, 19:22 5
Вот простой калькулятор на С++
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
#include <iostream>
#include <time.h>
#include <string>
using namespace std;
 
int suma(int a, int b)
{
    return a + b;
}
 
int different(int a, int b)
{
    return a - b;
}
 
int mult(int a, int b)
{
    return a * b;
}
 
int devisions(int a, int b)
    {
        if (b == 0)
        {
            cout << "ERROR!";
            return 0;
        }
        else
        {
            return a / b;
        }
    }
 
 
int main()
{
    srand(time(NULL));
    int a, b;
    cout << "Enter a\n"; cin >> a;
    cout << "Enter b\n"; cin >> b;
    int (*operation[4])(int a, int  b) = {suma, different, mult, devisions};
 
    int lenght = sizeof(operation) / sizeof(operation[0]);
 
    for (int i = 0; i < lenght; i++)
    {
        cout << "Result = " << operation[i](a, b) << "\n";
    }
 
    system("Pause");
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2020, 19:22
Помогаю со студенческими работами здесь

Разработать простой калькулятор
Всем-всем привет!!! Извините за придедущее письмо ето всьо брат, но я тоже не знаю руссково язика)...

Простой калькулятор, выбивает ошбку(
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include&lt;locale.h&gt; using namespace std; int main() {...

Надо сделать простой калькулятор
Помогите...........НАдо сделать простой калькулятор. вот тема:&quot;розробка програмного забезпечення...

Простой калькулятор рациональных чисел на C++
Всем доброго времени суток, Только начал изучать C++ и задали вот такое задание: Напишите...


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

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

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