Я пытаюсь написать программу для расчета объема и количества кондиционера, добавляемого в аквариумы сферической или прямоугольной формы.
Я хочу, чтобы он спросил пользователя, является ли резервуар круглым, на что они ответят либо «у», «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;
}
В C ++ =
является оператором присваивания. Для равенства, пожалуйста, используйте ==
,
То есть изменение
if (Circle = 'Y' or 'y')
в
if (Circle == 'Y' || Circle == 'y')
А также
if (Circle = 'N' or 'n')
в
if (Circle == 'N' || Circle == 'n')
Ваши условия if полностью неверны; никакая часть этого не делает то, что вы думаете: if (Circle = 'Y' or 'y')
,
Ты ищешь if (Circle == 'Y' || Circle == 'y')
, То, что вы написали, неверно по нескольким причинам; он использует оператор присваивания (=
вместо ==
), а другая половина двоичного or
всегда верно.
То, что вы написали, по сути это:
if ('Y') {
if ('y') {
}
}
И «Y», персонаж, приводит к булеву true
так же, как символ «N», так что оба if
Условия заявления оцениваются как истинные.
Измени свой if
заявления к
if (Circle == 'Y' || Circle == 'y')
...
if (Circle == 'N' || Circle == 'n')
Сравнение ==
тогда как назначение =
,