C语言编程自定义二维整数数组,实现5行5列矩阵的转置, 计算转置前(后)主、副对角线上元素之和。
时间: 2024-06-04 22:10:26 浏览: 183
好的,这个问题属于编程问题。可以使用以下代码实现:
#include <stdio.h>
#define ROWS 5
#define COLS 5
int main() {
int arr[ROWS][COLS], transpose[COLS][ROWS];
int main_diag_sum = 0, side_diag_sum = 0;
printf("请输入一个5行5列的矩阵:\n");
// 获取矩阵
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
scanf("%d", &arr[i][j]);
}
}
// 转置矩阵
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
transpose[j][i] = arr[i][j];
}
}
// 计算对角线之和
for (int i = 0; i < ROWS; ++i) {
main_diag_sum += arr[i][i];
side_diag_sum += arr[i][ROWS-i-1];
}
printf("\n转置后的矩阵:\n");
for (int i = 0; i < COLS; ++i) {
for (int j = 0; j < ROWS; ++j) {
printf("%d ", transpose[i][j]);
}
printf("\n");
}
printf("\n转置前的主对角线之和:%d\n", main_diag_sum);
printf("转置后的主对角线之和:%d\n", main_diag_sum);
printf("转置前的副对角线之和:%d\n", side_diag_sum);
printf("转置后的副对角线之和:%d\n", side_diag_sum);
return 0;
}
阅读全文