Member 13387441 Ответов: 2

Программа, которая предлагает пользователям ввести два номера и оператора.петля управляется с помощью сторожевого значения E


Я думал, что почти получил его, но я продолжаю получать ошибки. Особенно когда я попытался добавить значение sentinel. Я всего лишь новичок и работал над этим так долго, что ничего не понимаю. Я надеялся, что кто-нибудь сможет мне помочь, пожалуйста... Спасибо..

Что я уже пробовал:

#include <iostream>
#include <iomanip>
using namespace std;

int main ( )
{
    int number1, number2, answer;
    char op, result;
    cin >>result;
    
    while (result!='E')
    {
        cout <<"Enter your first number"<<endl;
        cin >> number1;
        
        cout>> "Enter your second number" <<endl;
        cin>>number2;
        
        cout>> "Enter '+', '-', '*', '/', '%'symbols you want. To calculate the two numbers"<<endl;
         cin<< op;
         
         {
             if (op=='+')result = number1 +number 2;
             if (op=='-')result = number1 -number 2;
             if (op=='*')result = number1 *number 2;
             if (op=='/')result = number1 /number 2;
             if (op=='%')result = number1 %number 2;
         }
         
         cout<<fixed << setprecision(2) <<"The answer is:"<< answer <<endl;
         cout << " If you want to quit please press E" <<result << endl;
    }     
         system ("pause");
         return 0;
    
}

Patrice T

Какое сообщение об ошибке? - когда ?

Richard MacCutchan

Посмотрите на ваши операторы cin и cout, вы используете неправильные символы вставки/извлечения в некоторых местах. Сообщения об ошибках на вашей компиляции покажут вам, что не так.

jeron1

число2 не совпадает с номером 2.

2 Ответов

Рейтинг:
9

Patrice T

Цитата:
Я думал, что почти получил его, но я продолжаю получать ошибки.

Нет, вы не далеко от его получения. Как только вы исправите все синтаксические ошибки, вы увидите, что логика полностью неверна.
Даже если код может выглядеть правильно локально, программа - это целое, и вы должны быть последовательны во всем коде.
Ваш код настолько запутан, что невозможно дать подсказки о том, что не так.
Значение переменных меняется во время выполнения кода.

Совет: используйте отладчик, чтобы увидеть, что делает ваш код, это отличный инструмент обучения.
Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.

Изучение метода анализа-тоже хорошая идея.
- Изучите один или несколько методов анализа, У. Е. сверху вниз Djikstra способ это хорошее начало.
https://en.wikipedia.org/wiki/Top-down_and_bottom-up_design[^]
https://en.wikipedia.org/wiki/Structured_programming[^]
https://en.wikipedia.org/wiki/Edsger_W._Dijkstra[^]
https://www.cs.utexas.edu/users/EWD/ewd03xx/EWD316.PDF[^]


Member 13387441

Огромное спасибо. Я буду работать над этим

Рейтинг:
16

OriginalGriff

Когда вы компилируете, он выдает вам сообщения об ошибках - иногда они могут быть загадочными, но они всегда говорят вам, в каком файле и строке (а иногда и в номере символа) они обнаружили проблему. Иногда это следующая строка, а не строка, вызывающая ошибку, но современные компиляторы довольно хорошо справляются с ней.

Поэтому, когда вы получаете предупреждение или сообщение об ошибке, внимательно посмотрите на строку, которую он идентифицировал, и пару предыдущих, и вы должны увидеть там ошибку.

Посмотри на эту:

cout>> "Enter your second number" <<endl;
И это довольно очевидно: "должно быть".;:
cout << "Enter your second number" <<endl;

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

Попробуйте-это не так сложно, как вам кажется!


Member 13387441

Огромное спасибо. Я еще раз все проверю.

OriginalGriff

Пожалуйста!