c++ 동적 메모리 할당 질문

조회수 241회

include

using namespace std; int main() { int num; int num_of_m = 0; int num_of_p = 0; cout << " 몇개의 숫자를 입력할건가요? " << endl; cin >> num; double* ptr; ptr = new double[num];

cout << "입력할 숫자들을 입력하시오 " << endl;
for (int i = 0; i < num; ++i) {
    cin >> *(ptr + i);
}

cout << " 입력한 숫자는 :" << endl;
for (int i = 0; i < num; ++i) {
    if (i < num - 1) {
        cout << *(ptr + i) << " , ";
    }
    if (i == num - 1) {
        cout << *(ptr + i) << endl;
    }
}
for (int i = 0; i < num; ++i) {

    if (*(ptr + i) < 0) {
        num_of_m = num_of_m + 1;
    }
    else { num_of_p = num_of_p + 1; }
}


int j = 0;
int k = 0;

double* minus;
double* plus;
minus = new double[num_of_m];
plus = new double[num_of_p];

for (int i = 0; i < num_of_m; ++i) {
    if (*(ptr + i) < 0) {

        *(minus + j) = *(ptr + i);
        j += 1;
    }
}
for (int i = 0; i < num_of_p; ++i) {
    if (*(ptr + i) >= 0) {
        *(plus + k) = *(ptr + i);
        k += 1;
    }

    cout << endl;
    for (int i = 0; i < num_of_m; i++) {
        if (i < num_of_m) {
            cout << *(minus + i) << "  ";
        }

    }

    for (int i = 0; i < num_of_p; i++) {
        if (i < num_of_p) {
            cout << *(plus + i) << "  ";
        }
    }

    delete[] ptr;
    delete[] minus;
    delete[] plus;




    return 0;

}

}

동적메모리 할당 공부중입니다 . 원하는 만큼의 숫자를 받아온 후

  1. 받아온 순서대로 출력
  2. 음수와 0 이상의 숫자로 나누어서 한번 더 출력 하는 것을 원했는데 2번의 출력 값이 이상합니다 어떻게 고쳐야할지 모르겠습니다 도와주세요 ㅠㅠ 감사합니다

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)