문제 5의 문제를 수정해보자. 사용자로부터 다음과 같이 원의 개수를 입력받고, 원의 개수만큼 반지름을 입력받는 방식으로 수정하라. 원의 개수에 따라 동적으로 배열을 할당받아야 한다.
#include // 06.h
using namespace std;
class Circle{ // Circle 생성
private:
int radius;
public:
void setRadius2(int radius); // radius를 파라미터로 받는 setRadius 선언
double getArea2(); // 넓이 구하는 getArea 선언
};
#include // 06.cpp
#include"06.h"
using namespace std;
void Circle::setRadius2(int radius){
this->radius = radius; // 파라미터로 받는 radius를 private로 선언된 radius에 저장
}
double Circle::getArea2(){
return 3.14*radius*radius; // 넓이
}
#include // 06_main.cpp
#include"06.h"
using namespace std;
int main(){
int n, m;
cout << "원의 개수 >> ";
cin >> n;
Circle *pcircles = new Circle[n]; // Circle 타입의 포인터 배열 선언
for (int i = 0; i < n; i++){
cout << "원 " << i + 1 << "의 반지름 >> ";
cin >> m; // 반지름 입력 받음
pcircles[i].setRadius2(m); // setRadius로 넘겨서 radius 저장
}
int cnt = 0; // 개수
for (int i = 0; i < n; i++){
if (pcircles[i].getArea2() > 100) // 넓이가 100 이상이면 cnt++
cnt++;
}
cout << "면적이 100보다 큰 원은 " << cnt << "개 입니다." << endl;
delete[] pcircles; // 메모리 반환
}