2013-02-04 2 views
-1

나는 구형 또는 직사각형 모양의 어항에 추가 할 컨디셔너의 양과 양을 계산하는 프로그램을 작성하려고합니다.두 번째 if 문 무시하기

탱크가 원형인지 '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; 
} 
+2

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

그리고

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

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

을 변경? 더 구체적으로, 의도 한 비교가'if (Circle = 'Y'또는 'y')'로 작동한다고 생각하게 만들었습니까? 당신은 아마도 지금보다 더 C++ 학습을위한 고품질의 소스를 얻어야 만합니다. – PlasmaHH

답변

1

명세서 조건이 완전히 잘못된 경우; 이것의 어떤 부분도 당신이 생각하는대로하지 않습니다 : if (Circle = 'Y' or 'y').

당신은 if (Circle == 'Y' || Circle == 'y')을 찾고 있습니다. 당신이 쓴 것은 몇 가지 이유로 잘못되었습니다; 그것은 할당 연산자 (== 대신에 =)를 사용하고 있으며, 나머지 반은 or입니다.

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

    } 
} 

그리고 'Y', 문자, 그래서 모두 if 문의 조건이 참으로 평가, 바로 문자 'N'과 같은 true을 논리 값으로 캐스트 : 당신이 쓴 무엇

이 필수적이다.

1

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

비교에 if 문을 변경

반면 할당 =입니다 ==이다.

3

C++ =은 대입 연산자입니다. 평등을 위해 ==을 사용하십시오. 이다 , 당신은에서 배우는 무슨 책

if (Circle == 'N' || Circle == 'n') 
+2

'toupper' 또는'tolower'를 사용하여 비교 횟수를 줄이는 것이 좋습니다 : if (toupper (Circle) == 'N')'. –