2017-11-28 11 views
0

저는 아주 새롭습니다. 초보자 용서를 용서하십시오. 코드 컴파일을 시도했지만 실행했지만 반지름 (r)을 입력 한 후에 값을 반환하지 않습니다. 함수를 void로 변경하고 cout을 사용하면 작동합니다. 정규형 double 함수로 작업하고 싶습니다. 또한 부차적 인 질문으로, 제가 시도하지 않으려 고 시도하면 다시 시도해 보는 것이 좋습니다. 즉 y 대신에 n을 입력함으로써 얻어진다.값을 반환하지 않는 함수 (C++)

double const pi=3.1415; 
double r=0.0; 
char ans; 

do { 
    cout << "Please enter in the radius\n"; 
    cin >> r; 

    area(pi, r); 
    circumference(pi, r); 

    cout << "Would you like to try again?\n"; 
    cin >> ans; 

} while (ans=='y'||'Y'); 



return 0; 
} 

double area(double pi, double r) 
{ 
double area_2=(pi*pow(r,2)); 
return area_2; 

} 

double circumference(double pi, double r) 
{ 

double circumference_2=(2*pi*r); 
return circumference_2; 

}

답변

0

과 같이 작동 논리 또는 운영자는 경우는 true A또는B가 true, true의 경우, 우리는 그 결과를 A || B이 있다고 할 수 있습니다.

그리고 C++에서 0이 아닌 값이 모두 참인 경우 ans=='y'||'Y'은 기본적으로 ans=='y'||true과 같습니다. 즉, 항상 사실입니다. 이는 결국 무한 루프가 있음을 의미합니다.

ans == 'y' || ans == 'Y'을 대신 입력해야합니다.

1

간단히 말해서 함수가 값 (double)을 반환하도록 작성되었지만 본질적으로 아무 것도 인쇄하지 않습니다.

하나를 사용 : 함수 자체

cout << area(pi, r); 

또는 COUT. 희망이 도움이됩니다.

+0

감사합니다. 내가 당신의 솔루션을 메인에서 사용했고 효과가있었습니다. –