C++

명품 C++ 4장 8번

NUMERO_K 2018. 10. 30. 00:23

8. 실습문제 7의 문제를 수정해보자. 사용자로부터 다음과 같이 원의 개수를 입력받고, 원의 개수만큼 반지름을 입력받는 방식으로 수정하라. 원의 개수에 따라 동적으로 배열을 할당 받아야 한다.


소스코드


#include <iostream>
using namespace std;
class Circle {
    int radius; // 원의 반지름 값
public:
    void setRadius(int radius); // 반지름을 설정한다.
    double getArea(); // 면적을 리턴한다.
};
void Circle::setRadius(int radius) {
    this->radius = radius;
}
double Circle::getArea() {
    return 3.14*radius*radius;
}
int main() {
    cout << "원의 개수 >> ";
    int n;
    cin >> n;
    Circle *p = new Circle[n];
    int count = 0; // 100보다 큰 원의 개수
    for (int i = 0; i < n; ++i) {
        cout << "원 " << i + 1 << "의 반지름 값 >> ";
        int r;
        cin >> r;
        p[i].setRadius(r);
        if (p[i].getArea() > 100) ++count;
    }
    cout << "면적이 100보다 큰 원은 " << count << "개 입니다." << endl;
    delete p;
}


실행결과



Circle *p = new Circle[n]; 동적으로 배열 할당 후, delete p; 반환 하였습니다.