Игнорирование второго оператора if

Я пытаюсь написать программу для расчета объема и количества кондиционера, добавляемого в аквариумы сферической или прямоугольной формы.

Я хочу, чтобы он спросил пользователя, является ли резервуар круглым, на что они ответят либо «у», «Y», либо «n», «N». Однако всякий раз, когда я запускаю программу и ввожу n или N, она все равно выполняет оператор if для y или Y.

Обратите внимание, что я очень новичок во всем этом. Это для введения в программирование и логический класс.

Вот мой исходный код:

#include <iostream>

using namespace std;

int main()
{
char Circle = ' ';
int RADIUS = 0;
int HEIcircle = 0;
int LEN = 0;
int WID = 0;
int HEI = 0;
double AMTcondCIR;
double AMTcondREC;
cout << "Is tank circular? ";
cin >> Circle;

if (Circle = 'Y' or 'y')
{

cout << "Enter radius: ";
cin >> RADIUS;
cout << "Enter height: ";
cin >> HEIcircle;
AMTcondCIR = ((4/3) * 3.14 * (RADIUS^3)) * 0.01;
cout << "Amount of Conditioner to add (in mL): " << AMTcondCIR << endl;
}
if (Circle = 'N' or 'n')
{

cout << "Enter length: ";
cin >> LEN;
cout << "Enter width: ";
cin >> WID;
cout << "Enter height: ";
cin >> HEI;
AMTcondREC = (LEN * WID * HEI) * 0.01;
cout << "Amount of Conditioner to add (in mL): " << AMTcondREC << endl;
}
system("pause");
return 0;
}

-1

Решение

В C ++ = является оператором присваивания. Для равенства, пожалуйста, используйте ==,
То есть изменение

if (Circle = 'Y' or 'y')

в

if (Circle == 'Y' || Circle == 'y')

А также

if (Circle = 'N' or 'n')

в

if (Circle == 'N' || Circle == 'n')
3

Другие решения

Ваши условия if полностью неверны; никакая часть этого не делает то, что вы думаете: if (Circle = 'Y' or 'y'),

Ты ищешь if (Circle == 'Y' || Circle == 'y'), То, что вы написали, неверно по нескольким причинам; он использует оператор присваивания (= вместо ==), а другая половина двоичного or всегда верно.

То, что вы написали, по сути это:

if ('Y') {
if ('y') {

}
}

И «Y», персонаж, приводит к булеву trueтак же, как символ «N», так что оба if Условия заявления оцениваются как истинные.

1

Измени свой if заявления к

if (Circle == 'Y' || Circle == 'y')
...
if (Circle == 'N' || Circle == 'n')

Сравнение ==тогда как назначение =,

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector