实验 2:指针与动态内存分配 (1)使用指针和'new'动态分配一个一维数组,并让用户输入数组长度和元素值。 (2)动态分配完成后,打印数组元素,计算并输出数组的平均值。使用c++语言,分别写出完整的程序
时间: 2024-11-06 19:36:43 浏览: 55
在C++中,你可以编写这样的实验来完成这个任务:
```cpp
#include <iostream>
// 动态分配数组
int* dynamicArray(int length) {
int* array = new int[length]; // 使用new动态分配指定长度的数组
if (array == nullptr) {
std::cerr << "Memory allocation failed!" << std::endl;
return nullptr;
}
return array;
}
// 输入用户数据并计算平均值
void inputAndAverage(int* array, int length) {
double sum = 0;
for (int i = 0; i < length; ++i) {
std::cout << "Enter element " << (i + 1) << ": ";
std::cin >> *(array + i); // 读取用户输入并赋值给数组
// 更新总和
sum += *(array + i);
}
// 计算平均值
double average = sum / length;
std::cout << "The average of the array is: " << average << std::endl;
// 释放动态内存
delete[] array;
}
int main() {
int arrayLength;
std::cout << "Enter the length of the array: ";
std::cin >> arrayLength;
int* myArray = dynamicArray(arrayLength);
if (myArray != nullptr) {
inputAndAverage(myArray, arrayLength);
} else {
return 1; // 如果内存分配失败,终止程序
}
return 0;
}
```
在这个程序中,首先获取用户输入的数组长度,然后使用`dynamicArray`函数动态地分配相应大小的数组。接着,用户可以输入每个元素的值,程序计算并输出平均值。最后,记得使用`delete[]`释放之前动态分配的内存,以防止内存泄漏。
阅读全文