用c语言编写一段程序,要求:编写一个函数,求N阶二维矩阵的主对角线元素之和。
时间: 2023-06-13 15:07:58 浏览: 241
以下是用C语言编写的求N阶二维矩阵主对角线元素之和的程序:
```c
#include <stdio.h>
#define N 3 // 定义矩阵阶数
int main() {
int matrix[N][N]; // 定义N阶矩阵
int i, j;
int sum = 0; // 主对角线元素之和
// 读入矩阵元素
printf("请输入%d阶矩阵的元素:\n", N);
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 求主对角线元素之和
for (i = 0; i < N; i++) {
sum += matrix[i][i];
}
// 输出结果
printf("主对角线元素之和为:%d\n", sum);
return 0;
}
```
程序中,先定义了一个N阶矩阵,然后读入矩阵元素,最后求出主对角线元素之和并输出。需要注意的是,这里将矩阵阶数N定义为了3,如果需要求其他阶数的矩阵主对角线元素之和,可以将N定义为其他值。
相关问题
用c语言编写一个函数,求N阶二维矩阵的主对角线元素之和。
以下是用C语言实现求N阶二维矩阵的主对角线元素之和的函数:
```c
#include <stdio.h>
int sumOfMainDiagonal(int arr[][100], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i][i];
}
return sum;
}
int main() {
int arr[100][100], n;
printf("Enter the size of matrix: ");
scanf("%d", &n);
// Taking input from user
printf("Enter the elements of matrix:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
// Printing the matrix
printf("The matrix you entered is:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
// Calculating the sum of main diagonal elements
int sum = sumOfMainDiagonal(arr, n);
// Printing the sum of main diagonal elements
printf("The sum of main diagonal elements is: %d", sum);
return 0;
}
```
在这个函数中,我们首先定义了 `sumOfMainDiagonal` 函数,该函数的参数是二维数组和矩阵的大小 N。该函数使用一个循环来遍历矩阵的主对角线并计算所有元素之和。最后,该函数返回总和。
然后我们在 `main` 函数中使用 `scanf` 函数从用户获取矩阵的大小和元素。然后,我们使用另一个循环来打印用户输入的矩阵。接下来,我们将这个数组传递给 `sumOfMainDiagonal` 函数,并打印出返回的总和。
C语言编写一个函数,求N阶二维矩阵的主对角线元素之和。
以下是求N阶二维矩阵的主对角线元素之和的C语言函数:
```c
int diagonal_sum(int matrix[][N], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += matrix[i][i]; // 加上主对角线上的元素
}
return sum;
}
```
其中,`matrix`是一个二维数组,表示N阶矩阵;`n`是矩阵的阶数;`sum`是主对角线元素之和。函数使用一个for循环来遍历主对角线上的元素,并将其加到`sum`变量中,最后返回`sum`。
阅读全文