如何用C语言编写一个程序,计算4x4矩阵的主对角线和副对角线元素之和,并同时输出其转置矩阵?
时间: 2024-12-16 17:23:49 浏览: 3
在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;
}
```
运行此程序,你会看到对角线和及转置矩阵的输出。
阅读全文