c++编程实现:计算n*n方阵的对角线上所有元素之和并输出。n是一个整数,1<=n<=20
时间: 2024-12-20 10:24:05 浏览: 14
在C++中,你可以通过循环结构遍历给定大小的矩阵(二维数组),然后只累加对角线上的元素。以下是一个简单的示例:
```cpp
#include <iostream>
int main() {
int n;
std::cout << "请输入矩阵的大小 (1 <= n <= 20): ";
std::cin >> n;
if (n < 1 || n > 20) {
std::cerr << "输入错误,矩阵大小应介于1到20之间。\n";
return 1;
}
int matrix[n][n]; // 初始化一个n x n的矩阵
int sum = 0; // 存储对角线元素的总和
// 计算主对角线的元素和
for (int i = 0; i < n; ++i) {
sum += matrix[i][i];
}
// 如果有奇数行,还需要考虑副对角线
if (n % 2 != 0) {
for (int i = 0; i < n; ++i) {
sum += matrix[i][n - 1 - i];
}
}
std::cout << "对角线上所有元素的和为: " << sum << "\n";
return 0;
}
```
在这个程序中,我们首先获取用户输入的矩阵大小,然后检查是否在有效范围内。接着初始化一个矩阵,并遍历对角线元素,将它们累加到`sum`变量中。如果矩阵的行数是奇数,我们需要再处理一次副对角线。最后,输出对角线上所有元素的和。
阅读全文