Top.Mail.Ru
Ответы

Цикл в команде где его не должно быть.

Я ток начел изучать С++ и напечатал небольшой и простенький калькулятор, но встретился с нестандартной проблемой на которую я не нашел ответ в интернете.
Вот код:
#include <iostream>



int main() {

using namespace std;

setlocale(LC_ALL, "Russian");

long number1;

long number2;

double number3;

char cymbol1;

cout << "Введите первое число: ";

cin >> number1;

cout << "Введите второе число: ";

cin >> number2;

cin >> cymbol1;

if (cymbol1=='+'){

number3 == number1 + number2;

cout << number3;

}

else if (cymbol1 == '-') {

number3 == number1 - number2;

cout << number3;

}

else if (cymbol1 == '/') {

if (number1<0 & number1 == 0 & number2 < 0 & number2 == 0){

cout << "ERROR 1";

return 0;

}

else {

number3 == number1 / number2;

cout << number3;

}

}

else if (cymbol1 == '*') {

number3 == number1 * number2;

cout << number3;

}

else if (cymbol1 == '**') {

while (number2>0) {

number2--;

number3 == number1 * number1;

}

cout << number3;

}

else {

cout << "ERROR 2";

}

cout << "ERROR 0";



return 0;

}

В ответе пишет все время 'Введите первое число: '

Я вписываю значение и он опять спрашивает тоже самое.
Писал в программе Visual Studio 2022.

По дате
По рейтингу
Аватар пользователя
Новичок
1мес

Вот нормальный код:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
 #include <iostream> 
#include <cmath>   
#include <string> 
 
int main() { 
    std::cout << "Введите первое число:" << std::endl; 
    double number1; 
    std::cin >> number1; 
 
    std::cout << "Введите второе число:" << std::endl; 
    double number2; 
    std::cin >> number2; 
 
    std::cout << "Введите операцию (+, -, /, *, **):" << std::endl; 
    std::string symbol; 
    std::cin >> symbol; 
 
    if (symbol == "+") { 
        double result = number1 + number2; 
        std::cout << result << std::endl; 
    } 
    else if (symbol == "-") { 
        double result = number1 - number2; 
        std::cout << result << std::endl; 
    } 
    else if (symbol == "/") { 
        if (number2 == 0) { 
            std::cout << "ERROR 1: Деление на ноль" << std::endl; 
            return 1; 
        } 
        else { 
            double result = number1 / number2; 
            std::cout << result << std::endl; 
        } 
    } 
    else if (symbol == "*") { 
        double result = number1 * number2; 
        std::cout << result << std::endl; 
    } 
    else if (symbol == "**") { 
        double result = std::pow(number1, number2); 
        std::cout << result << std::endl; 
    } 
    else { 
        std::cout << "ERROR: Неверная операция" << std::endl; 
    } 
 
    return 0; 
} 
 
Аватар пользователя
Искусственный Интеллект
1мес

Этого не может быть. Наверняка ты запускаешь старую версию. Построй проект, прежде чем запускать его, избавься ото всех ошибок.

Аватар пользователя
Искусственный Интеллект
1мес

Скорее всего из-за ошибки компиляции ( в строке

else if (cymbol1 == '**') {

)
Запускается предыдущая версия, код которой мы не увидим