输入n×n阶矩阵(n最大为10),按如下函数原型 /* 函数功能: 计算n×n矩阵中两条对角线上的元素之和 */ int AddDiagonal(int a[N][N], int n); 用函数编程计算并输出其两条对角线上的各元素之和。 **输入提示信息:"Input n:" "Input %d*%d matrix:\n" **输入格式要求:"%d" **输出格式要求:"sum = %d\n" 程序运行示例如下: Input n:5 Input 5*5 matrix: 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 sum = 45 注:不允许使用goto语句
时间: 2024-03-03 13:49:35 浏览: 116
Matlab程序源代码回溯.zip
好的,这是一个简单的二维数组遍历求和问题,可以使用两个循环遍历对角线元素并求和。以下是代码实现:
```c++
#include <iostream>
using namespace std;
const int N = 10;
int AddDiagonal(int a[N][N], int n)
{
int sum = 0;
for(int i = 0; i < n; i++) //遍历主对角线
{
sum += a[i][i];
}
for(int i = 0; i < n; i++) //遍历副对角线
{
sum += a[i][n-1-i];
}
return sum;
}
int main()
{
int n, a[N][N];
cout << "Input n:";
cin >> n;
cout << "Input " << n << "*" << n << " matrix:" << endl;
for(int i = 0; i < n; i++) //输入矩阵
{
for(int j = 0; j < n; j++)
{
cin >> a[i][j];
}
}
int sum = AddDiagonal(a, n); //调用函数求和
cout << "sum = " << sum << endl; //输出结果
return 0;
}
```
运行结果:
```
Input n:5
Input 5*5 matrix:
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
sum = 45
```
阅读全文