使用C语言计算一个4x4的矩阵对角线元素和
时间: 2024-05-16 11:19:39 浏览: 222
以下是一个计算 4x4 矩阵对角线元素和的 C 语言代码:
```c
#include <stdio.h>
int main() {
int matrix[4][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}};
int sum = 0;
int i, j;
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
if (i == j) {
sum += matrix[i][j];
}
}
}
printf("The sum of diagonal elements is %d", sum);
return 0;
}
```
在上面的代码中,我们定义了一个 4x4 的矩阵 matrix,用于存储矩阵元素。然后,我们使用两个 for 循环遍历矩阵的每一个元素,如果该元素在主对角线上(即行号和列号相同),则将该元素的值加到 sum 变量上。最后,输出 sum 变量的值,即为矩阵对角线元素的和。
相关问题
如何用C语言编写一个程序,计算4x4矩阵的主对角线和副对角线元素之和,并同时输出其转置矩阵?
在C语言中,你可以使用二维数组来表示4x4矩阵,然后通过两个循环遍历矩阵来分别计算主对角线和副对角线元素之和。接下来我会展示一个简单的示例代码,它首先计算对角线和,然后创建并打印转置矩阵。
```c
#include <stdio.h>
// 函数声明
void printMatrix(int matrix[4][4]);
int getDiagonalSums(int matrix[4][4]);
int main() {
int matrix[4][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
};
// 计算并输出主对角线和副对角线元素之和
int mainDiagonalSum = getDiagonalSums(matrix);
printf("主对角线和副对角线元素之和: %d\n", mainDiagonalSum);
// 打印原矩阵
printf("Original Matrix:\n");
printMatrix(matrix);
// 计算转置矩阵
int transpose[4][4];
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
transpose[i][j] = matrix[j][i];
}
}
// 输出转置矩阵
printf("\n转置矩阵:\n");
printMatrix(transpose);
return 0;
}
// 函数:打印矩阵
void printMatrix(int matrix[4][4]) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
// 函数:获取对角线元素之和
int getDiagonalSums(int matrix[4][4]) {
int sum1 = 0, sum2 = 0;
for (int i = 0; i < 4; i++) {
sum1 += matrix[i][i]; // 主对角线元素
if (i != 3) // 避免副对角线最后一个元素重复计数
sum2 += matrix[i][3-i]; // 副对角线元素
}
return sum1 + sum2;
}
```
运行此程序,你会看到对角线和及转置矩阵的输出。
c语言编写程序,求一个4x4矩阵中所有元素之和和主对角线元素之和
以下是一个示例程序,可以计算一个4x4矩阵中所有元素之和和主对角线元素之和:
```c
#include <stdio.h>
int main() {
int matrix[4][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}};
int sum = 0;
int diag_sum = 0;
int i, j;
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
sum += matrix[i][j];
if (i == j) {
diag_sum += matrix[i][j];
}
}
}
printf("所有元素之和为:%d\n", sum);
printf("主对角线元素之和为:%d\n", diag_sum);
return 0;
}
```
输出结果为:
```
所有元素之和为:136
主对角线元素之和为:34
```
阅读全文