C++求n×n方阵两条对角线元素之和
下面是一个 C++ 程序,用于输入一个 \( n \times n \) 方阵并求两条对角线(主对角线和副对角线)上元素之和。 ```cpp #include <iostream> #include <vector> int main() { int n; std::cout << "请输入方阵的大小 n: "; std::cin >> n; // 使用 vector 动态创建二维数组 std::vector<std::vector<int>> matrix(n, std::vector<int>(n)); std::cout << "请输入方阵的 " << n * n << " 个元素(逐行输入):\n"; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { std::cin >> matrix[i][j]; } } int mainDiagonalSum = 0; // 主对角线之和 int secondaryDiagonalSum = 0; // 副对角线之和 for (int i = 0; i < n; ++i) { // 主对角线:行和列相同 mainDiagonalSum += matrix[i][i]; // 副对角线:行 i,列 n - 1 - i secondaryDiagonalSum += matrix[i][n - 1 - i]; } std::cout << "主对角线元素之和: " << mainDiagonalSum << std::endl; std::cout << "副对角线元素之和: " << secondaryDiagonalSum << std::endl; return 0; } ``` ### 🔍 程序说明 - 用户输入 `n` 和所有矩阵元素。 - 主对角线元素对应 `matrix[i][i]`。 - 副对角线元素对应 `matrix[i][n - 1 - i]`。 - 两个循环合并为一个 `for` 循环,一次遍历即可完成求和。 - 使用 `std::vector` 可以很好地处理动态大小。 ### ⚠️ 注意点 - 输入的方阵必须是方阵(行数等于列数),程序不会做额外校验。 - 如果矩阵极大(如 \( n > 10^4 \)),`vector<vector<int>>` 的内存占用会很大,可以考虑改用一维数组或 `std::valarray`。 - 如果矩阵元素很大(如超过 `int` 范围),请使用 `long long` 存储和。 ######[AI问答 | 530点数解答 | 2026-07-11 09:45:34]
- 2048位学生早会组方阵,Python编程算出最多完整行数! (DeepSeek | 234点数解答 | 2025-08-15 18:58:16)181
- 核晶学院早会方阵行数计算:Python代码及注意事项揭秘(字节豆包 | 218点数解答 | 2025-12-21 14:40:19)78
- jQuery 实现动态操作 DOM:打造可增删任务的待办事项列表应用(百度文心 | 1015点数解答 | 2024-10-26 23:41:22)485
- jQuery 打造实用待办事项列表:输入添加、点击删除一步到位!(阿里通义 | 1139点数解答 | 2024-10-29 08:44:48)405
- jQuery 实现动态操作 DOM:打造带添加与删除功能的待办事项列表应用(阿里通义 | 687点数解答 | 2024-10-29 09:25:06)417
- C语言实现:求a+aa+aaa+...+aa...a(n个a)之和的代码解析(GPT | 214点数解答 | 2024-11-13 16:07:25)197
- Python 代码实现:验证哥德巴赫猜想,严格校验输入求偶数质数分解(字节豆包 | 405点数解答 | 2024-11-27 21:54:51)195
- Python 实现:验证哥德巴赫猜想,输出偶数素数分解最小解(字节豆包 | 244点数解答 | 2024-11-27 21:55:19)220
- Python 实现哥德巴赫猜想验证:含异常处理与效率优化(字节豆包 | 379点数解答 | 2024-11-27 21:57:25)275
- Python实现:验证任一不少于6偶数分解为两质数之和(输出最小a解)(阿里通义 | 241点数解答 | 2024-12-11 10:19:16)312
- Python 求解序列子序列异或函数值总和,附边界处理与性能优化提示(字节豆包 | 290点数解答 | 2025-04-26 10:20:35)127
- 巧用位运算与动态规划:求解序列子序列异或函数值之和(DeepSeek | 1885点数解答 | 2025-04-26 10:22:18)128