用new和delete运算符动态分配内存空间的方法编写程序。动态分配数组,从键盘3*3整型二维数组的数据,并计算出所有元素之和,打印出最大值和最小值。(进阶,选做)
时间: 2024-09-18 09:03:07 浏览: 39
在C++中,你可以使用`new`运算符动态地创建数组,然后使用`delete`释放它所占用的空间。以下是一个简单的程序示例,演示如何动态分配一个3x3的整型二维数组,输入数据并计算元素总和、最大值和最小值:
```cpp
#include <iostream>
using namespace std;
int main() {
int rows = 3;
int cols = 3;
// 动态分配内存
int** dynamicArray = new int*[rows];
for (int i = 0; i < rows; ++i) {
dynamicArray[i] = new int[cols]; // 每行分配列数个元素
}
// 读取用户输入
cout << "Enter the elements:\n";
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
cin >> dynamicArray[i][j];
}
}
// 计算总和、最大值和最小值
int sum = 0, maxVal = *dynamicArray[0], minVal = *dynamicArray[0];
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
sum += dynamicArray[i][j];
if (dynamicArray[i][j] > maxVal) {
maxVal = dynamicArray[i][j];
} else if (dynamicArray[i][j] < minVal) {
minVal = dynamicArray[i][j];
}
}
}
// 打印结果
cout << "Sum of all elements: " << sum << endl;
cout << "Max value: " << maxVal << endl;
cout << "Min value: " << minVal << endl;
// 释放内存
for (int i = 0; i < rows; ++i) {
delete[] dynamicArray[i];
}
delete[] dynamicArray;
return 0;
}
```
阅读全文