다음은 코드입니다.영역이 다시 0으로 돌아 오는 이유는 무엇입니까?
int a;
int pi = 3.14;
int area;
int main()
{
cout << "Input the radius of the circle ";
cin >> a;
a *= a *= pi >> area;
cout << "The area is " << area;
}
다음은 코드입니다.영역이 다시 0으로 돌아 오는 이유는 무엇입니까?
int a;
int pi = 3.14;
int area;
int main()
{
cout << "Input the radius of the circle ";
cin >> a;
a *= a *= pi >> area;
cout << "The area is " << area;
}
원의 면적은 pi * r * r이므로 사용자가 원할 것입니다.
을하는 데 도움이 그들 모두가 수레 될 필요가a = a * a * pi
희망.
이상한 코드를 해독하기에 충분한 인내가 없습니다. 그냥 area = a * a * pi
어때요?
친절하신 분 낯선 사람 –
모든 변수는 정수로 선언되어 할당 된 소수 부분 만 삭제합니다. 부동 소수점 값을 사용하려면 double을 대신 사용하십시오.
또한 방정식은 거의 이해할 수 없습니다. 당신이 무엇을하려고하는지 확신하지 못합니다.
숫자와 함께 사용되는 >>
연산자는 오른쪽 시프트이며 할당이 아닙니다. 당신은
area = a * a * pi;
업데이트 당신은 또한 당신이 무엇을 기대하지 않습니다 부동 소수점 유형 또는 답변을 사용할 필요가
같은 것을 원한다.
float a;
float pi = 3.14f;
float area;
약간의 공간을 낭비하도록 만듭니다. 부동 소수점 기본값으로 double을 사용합니다. –
@ 마틴 : 조숙 한 금욕이지 않습니까? ;) –
아니야. 반올림 오류를 디버그하는 데 필요한 시간이 오래 걸립니다. – CodesInChaos
코드는 내가 원하는 것으로 생각하지 않습니다. >>
이있는 변수에는 할당하지 않습니다. 이는 스트림 추출 (비트 시프트)에만 해당됩니다.
또한 a *= a *= pi
은 아마도 당신이 생각하는대로하지 않을 것입니다.
또한 int
이 아닌 부동 소수점 값을 원합니다. "int"파이는 단지 3입니다.
또한 스트림 추출시 오류 검사가 필요합니다!
시도 :
이int main()
{
const float pi = 3.14;
float a;
cout << "Input the radius of the circle ";
if (!(cin >> a)) {
cout << "Invalid radius!";
return 1;
}
float area = (a * a * pi);
cout << "The area is " << area;
}
귀하의 코드가 이해가되지 않습니다.
pi
(및 기타 모든 변수)은 int가 아닌 double 또는 float이어야합니다. int는 정수만 포함 할 수 있습니다. 그리고 pi
은 분명히 통합되지 않습니다.
a *= a *= pi >> area;
>>
area = a * a * pi;
이 bitshift하지
*=
은 다중 할당 할뿐 아니라 증식되어 오른쪽으로 할당입니다해야합니다. 즉 left=left*right
+1 내가 쓴 것을 글쓰기 위해서.하지만 훨씬 일관된 방식으로. :) –
int pi = 3.14;
잘못된 데이터 유형입니다. double 값을 int
에 할당 하시겠습니까? 그건 틀렸어요.
쓰기이 :
double pi = 3.14;
와 마찬가지로이뿐만 아니라 double
에 다른 데이터 유형을 변경합니다.
입력 값이 무엇입니까? –
3은 pi에 대해 상당히 부정확 한 추정치입니다. –
이 코드는 너무 이상하지 않아서 더 이상 재미 없어졌습니다. 우선,'cin >> ...'(그리고'cout << ...')은 매우 특별한 경우이고'<<' (and '>>')은 다른 모든 문맥에서 매우 다른 것을 의미한다. 파이 << 지역? 당신은 운 좋게도 0을 얻습니다. 아무 것도 얻을 수 있습니다. – delnan