用c++定义一个6乘6的二维数组,给它赋初值为,1,4,9,25……n乘n分别求两条对角线的和。
时间: 2024-12-25 19:33:53 浏览: 46
在 C++ 中,你可以首先定义一个 `int` 类型的一维动态数组,然后计算平方数序列,并将它们存储到这个数组中。接着,为了获取两条对角线的和,我们可以分别处理从左上角到右下角和从右上角到左下角的元素。
下面是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
// 定义一个函数来生成并初始化 6x6 的二维数组
void initializeDiagonalArray(int** arr, int size) {
for (int i = 0; i < size; ++i) {
arr[i] = new int[size];
for (int j = 0; j < size; ++j) {
if (i == j)
// 对角线1(从左上到右下)
arr[i][j] = i * i;
else if (i + j == size - 1)
// 对角线2(从右上到左下)
arr[i][j] = size * size - (i * i);
}
}
}
// 函数用于计算并打印对角线之和
void calculateDiagonalSums(int** arr, int size) {
int sum1 = 0, sum2 = 0;
for (int i = 0; i < size; ++i) {
sum1 += arr[i][i]; // 对角线1
sum2 += arr[i][size - 1 - i]; // 对角线2
}
cout << "Sum of the first diagonal: " << sum1 << endl;
cout << "Sum of the second diagonal: " << sum2 << endl;
}
int main() {
const int size = 6;
int** array = new int*[size]; // 创建一个动态数组
initializeDiagonalArray(array, size);
// 计算并对角线和
calculateDiagonalSums(array, size);
// 释放内存
for (int i = 0; i < size; ++i) {
delete[] array[i];
}
delete[] array;
return 0;
}
```
在这个例子中,`initializeDiagonalArray` 函数负责初始化数组,`calculateDiagonalSums` 函数则计算并打印两条对角线的和。注意在主函数结束时需要删除动态分配的内存。
阅读全文