c++用函数求矩阵的副对角线元素之和
时间: 2024-05-11 21:17:02 浏览: 10
可以使用以下的函数来求解矩阵的副对角线元素之和:
```c
#include <stdio.h>
int secondary_diagonal_sum(int matrix[][N], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += matrix[i][n - i - 1];
}
return sum;
}
int main() {
int matrix[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int n = 3;
int sum = secondary_diagonal_sum(matrix, n);
printf("Secondary diagonal sum: %d\n", sum);
return 0;
}
```
其中,`matrix` 表示要求和的矩阵;`n` 表示矩阵的维度;`sum` 表示矩阵的副对角线元素之和。函数中的循环从第一行开始,每次累加矩阵中对应元素的值,最后返回总和即可。
相关问题
用C++写程序求一个3×3的整数矩阵对角线元素之和用到scanf函数
```c
#include <stdio.h>
int main()
{
int matrix[3][3];
int sum = 0;
printf("Please enter the elements of the matrix:\n");
// 读取矩阵元素
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 计算对角线元素之和
for (int i = 0; i < 3; i++) {
sum += matrix[i][i];
}
printf("The sum of diagonal elements is %d\n", sum);
return 0;
}
```
求一个N×N矩阵主、次对角线上所有元素之和。矩阵输入、矩阵输出、矩阵对角线求和分别用三个子函数实现。(N的值由用户从键盘输入) c++
下面是实现该功能的 C++ 代码:
```cpp
#include <iostream>
using namespace std;
void inputMatrix(int **matrix, int n);
void outputMatrix(int **matrix, int n);
int sumMainDiagonal(int **matrix, int n);
int sumSecondaryDiagonal(int **matrix, int n);
int main() {
int n;
cout << "请输入矩阵的大小:";
cin >> n;
// 动态分配二维数组
int **matrix = new int*[n];
for (int i = 0; i < n; i++) {
matrix[i] = new int[n];
}
// 输入矩阵
inputMatrix(matrix, n);
// 输出矩阵
cout << "矩阵为:" << endl;
outputMatrix(matrix, n);
// 求主对角线元素之和
int sum1 = sumMainDiagonal(matrix, n);
cout << "主对角线元素之和为:" << sum1 << endl;
// 求次对角线元素之和
int sum2 = sumSecondaryDiagonal(matrix, n);
cout << "次对角线元素之和为:" << sum2 << endl;
// 释放内存
for (int i = 0; i < n; i++) {
delete[] matrix[i];
}
delete[] matrix;
return 0;
}
// 输入矩阵
void inputMatrix(int **matrix, int n) {
cout << "请输入" << n << "×" << n << "的矩阵:" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> matrix[i][j];
}
}
}
// 输出矩阵
void outputMatrix(int **matrix, int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j] << "\t";
}
cout << endl;
}
}
// 求主对角线元素之和
int sumMainDiagonal(int **matrix, int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += matrix[i][i];
}
return sum;
}
// 求次对角线元素之和
int sumSecondaryDiagonal(int **matrix, int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += matrix[i][n-i-1];
}
return sum;
}
```
代码中 `inputMatrix` 函数用于从键盘输入矩阵,`outputMatrix` 函数用于输出矩阵,`sumMainDiagonal` 函数用于求主对角线元素之和,`sumSecondaryDiagonal` 函数用于求次对角线元素之和。