存在一个二维数组a[10][10],每个元素的值为该元素下标的平方和求该矩阵中对角线元素的和及平均值写出c++程序
时间: 2024-12-06 16:26:38 浏览: 18
你可以使用 C++ 来编写一个简单的程序,遍历给定的二维数组 `a`,计算主对角线(从左上到右下)和副对角线(从左下到右上)的元素之和,并计算它们的平均值。以下是相应的代码:
```cpp
#include <iostream>
int main() {
int a[10][10];
int sum_main_diagonal = 0;
int sum_sub_diagonal = 0;
// 初始化二维数组 (这里仅示例,实际数据需要你自己提供)
for(int i = 0; i < 10; ++i) {
for(int j = 0; j < 10; ++j) {
a[i][j] = i * i + j * j; // 设置元素值为下标平方和
}
}
// 计算主对角线元素之和
for(int i = 0; i < 10; ++i) {
sum_main_diagonal += a[i][i];
}
// 计算副对角线元素之和
for(int i = 0; i < 10; ++i) {
if(i < 9) { // 避免越界访问
sum_sub_diagonal += a[i][9 - i];
}
}
// 主对角线和副对角线的平均值
double average MainDiagonal = static_cast<double>(sum_main_diagonal) / 10;
double averageSubDiagonal = static_cast<double>(sum_sub_diagonal) / (std::min(9, static_cast<int>(10 - 1)));
std::cout << "主对角线元素之和: " << sum_main_diagonal << "\n";
std::cout << "副对角线元素之和: " << sum_sub_diagonal << "\n";
std::cout << "主对角线平均值: " << averageMainDiagonal << "\n";
std::cout << "副对角线平均值: " << averageSubDiagonal << "\n";
return 0;
}
```
这个程序会首先初始化数组 `a`,然后分别计算主对角线和副对角线的元素和,最后计算并输出它们的平均值。
阅读全文