编写一个C++程序,使用new运算符动态分配一个整数数组,该程序应该能够让用户通过键盘输入数组的大小,并动态地分配相应大小的数组空间,然后通过键盘输入数组数据,并对该数组排序,最后输出排序后的数组元素。
时间: 2024-09-13 13:06:20 浏览: 59
在C++中,你可以创建一个程序来完成这个任务,首先,我们需要使用`new`运算符动态分配内存,然后接收用户的输入,对数组进行排序,最后释放内存。下面是一个简单的示例:
```cpp
#include <iostream>
#include <algorithm> // 引入sort函数
using namespace std;
int* createArray(int size) {
int* arr = new int[size]; // 动态分配数组
if (arr == nullptr) {
cerr << "Memory allocation failed!" << endl;
return nullptr; // 如果分配失败,返回nullptr
}
return arr;
}
void inputArray(int* arr, int size) {
cout << "Enter array elements:" << endl;
for (int i = 0; i < size; i++) {
cin >> arr[i];
}
}
void sortArray(int* arr, int size) {
sort(arr, arr + size); // 使用内置的sort函数
}
void printArray(int* arr, int size) {
cout << "Sorted array: ";
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int main() {
int size;
cout << "Enter the size of the array: ";
cin >> size;
int* dynamicArr = createArray(size);
if (dynamicArr != nullptr) {
inputArray(dynamicArr, size);
sortArray(dynamicArr, size);
printArray(dynamicArr, size);
delete[] dynamicArr; // 释放动态分配的内存
} else {
return 1;
}
return 0;
}
```
在这个程序中,我们首先询问用户数组的大小,然后动态分配内存,接着让用户输入数组元素,随后对数组进行排序并打印结果。注意,在使用完数组后,我们通过`delete[]`操作符释放动态分配的内存。