Цикл в команде где его не должно быть.
Я ток начел изучать С++ и напечатал небольшой и простенький калькулятор, но встретился с нестандартной проблемой на которую я не нашел ответ в интернете.
Вот код:
#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.
Вот нормальный код:
#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;
}
Этого не может быть. Наверняка ты запускаешь старую версию. Построй проект, прежде чем запускать его, избавься ото всех ошибок.
Скорее всего из-за ошибки компиляции ( в строке
else if (cymbol1 == '**') {
)
Запускается предыдущая версия, код которой мы не увидим