-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は常にtrueです。

あなたが書いたのは本質的にこれです:

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

  }
}

trueまた、文字「Y」は、文字「N」と同じようにブール値にキャストされるため、両方ifのステートメントの条件がtrueと評価されます。

于 2013-02-04T16:51:19.063 に答える
1

ifステートメントを次のように変更します

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

比較はですが==、割り当ては=です。

于 2013-02-04T16:51:34.740 に答える