-1

我正在尝试编写一个程序来计算要添加到球形或矩形鱼缸中的调节剂的体积和数量。

我希望它询问用户坦克是否是圆形的,他们将回答“y”、“Y”或“n”、“N”。但是,每当我运行程序并输入 n 或 N 时,它仍然会运行 y 或 Y 的 if 语句。

请注意,我对这一切都很陌生。这是对编程和逻辑类的介绍。

这是我的源代码:

#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;
}
4

3 回答 3

3

在 C++=中是赋值运算符。为了平等,请使用==. 也就是改变

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

进入

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

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

进入

if (Circle == 'N' || Circle == 'n')
于 2013-02-04T16:51:59.200 回答
1

您的 if 语句条件完全错误;这没有任何部分做你认为它做的事情:if (Circle = 'Y' or 'y').

你正在寻找if (Circle == 'Y' || Circle == 'y'). 由于几个原因,您所写的内容是错误的;它使用赋值运算符(=而不是==),并且二进制的另一半or始终为真。

你写的基本上是这样的:

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

  }
}

并且字符 'Y' 转换为 boolean true,就像字符 'N' 一样,因此两个if语句的条件都评估为真。

于 2013-02-04T16:51:19.063 回答
1

if将您的陈述更改为

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

比较是==,而赋值是=

于 2013-02-04T16:51:34.740 回答