반응형
4.6> 실습 문제 5의 문제를 수정해보자. 사용자로부터 다음과 같이 원의 개수를 입력받고, 원의 개수만큼 반지름을 입력받는 방식으로 수정하라. 원의 개수에 따라 동적으로 배열을 할당받아야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include <iostream> using namespace std; class Circle{ //Circle 클래스 private: int radius; //private 타입 인티저 radius public: void setRadius(int radius); double getArea(); }; void Circle::setRadius(int radius){ //radius 셋하는 함수 this->radius=radius; //this->radius는 클래스의 멤버 변수,radius는 멤버 함수의 매개 변수 } double Circle::getArea(){ //넓이를 구해주는 멤버 함수 getArea return radius*radius*3.14; } int main(void){ int n=0; // 원의 개수 int count=0; //면적이 100보다 큰 원 개수 int r; //반지름을 담을 변수 while(true){ //원의 개수를 1보다 작게 했을 때 생기는 오류를 없애주는 무한루프 cout<<"원의 개수 >> "; cin>>n; //n을 받는다. if(n>=1) //n이 1보다 크면 무한루프 탈출 break; } Circle *p=new Circle[n]; //Circle 객체를 동적으로 n개 생성 해당포인터 p for(int i=0;i<n;i++){ cout<<"원 "<<i+1<<"의 반지름 >> "; cin>>r; p[i].setRadius(r); //p[i]의 radius를 r로 설정해준다 if(p[i].getArea()>100) //p[i]의 넓이가 100보다크면 count++; //카운트를 늘려준다. } cout<<"면적이 100보다 큰 원은 "<<count<<"개 입니다."<<endl; //100보다큰원 출력 delete []p; //동적 배열 메모리 힙에 반환 } | cs |
반응형
'컴퓨터 & 프로그래밍 & 전자공학 > C++' 카테고리의 다른 글
Circle, CircleManager 클래스 (0) | 2017.11.03 |
---|---|
Person, Family 클래스 (0) | 2017.11.03 |
문자열 문자 랜덤 수정 (0) | 2017.11.03 |
변수와 포인터와 레퍼런스 (0) | 2017.10.27 |
네임스페이스 사용시 클래스 내 함수 구현 (0) | 2017.10.17 |