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;
}
}
동적메모리 할당 공부중입니다 . 원하는 만큼의 숫자를 받아온 후
- 받아온 순서대로 출력
- 음수와 0 이상의 숫자로 나누어서 한번 더 출력 하는 것을 원했는데 2번의 출력 값이 이상합니다 어떻게 고쳐야할지 모르겠습니다 도와주세요 ㅠㅠ 감사합니다
댓글 입력