用Fortran语言编写程序:已知 5×5 矩阵 A, 求转置、对角线元素之和、寻找最大值及其位置、每一行的和
时间: 2024-02-23 14:03:24 浏览: 17
好的,以下是Fortran语言编写程序的代码:
```
program matrix_operations
implicit none
integer :: i, j, max_val, max_i, max_j, diag_sum
integer :: a(5,5), a_transpose(5,5), row_sum(5)
! 初始化矩阵A
a = reshape([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25], [5,5])
! 求转置矩阵
do i = 1,5
do j = 1,5
a_transpose(j,i) = a(i,j)
end do
end do
! 求对角线元素之和
diag_sum = 0
do i = 1,5
diag_sum = diag_sum + a(i,i)
end do
! 寻找最大值及其位置
max_val = a(1,1)
max_i = 1
max_j = 1
do i = 1,5
do j = 1,5
if (a(i,j) > max_val) then
max_val = a(i,j)
max_i = i
max_j = j
end if
end do
end do
! 求每一行的和
do i = 1,5
row_sum(i) = sum(a(i,:))
end do
! 打印结果
write(*,*) "矩阵A:"
do i = 1,5
write(*,"(5i3)") a(i,:)
end do
write(*,*) "转置矩阵A':"
do i = 1,5
write(*,"(5i3)") a_transpose(i,:)
end do
write(*,*) "对角线元素之和:", diag_sum
write(*,*) "最大值及其位置:", max_val, "在第", max_i, "行,第", max_j, "列"
write(*,*) "每一行的和:"
do i = 1,5
write(*,*) row_sum(i)
end do
end program matrix_operations
```
这个程序可以求出矩阵A的转置、对角线元素之和、最大值及其位置、每一行的和。其中,矩阵A的初始值是从1到25的整数,按行优先排列。程序输出的结果如下:
```
矩阵A:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
转置矩阵A':
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
对角线元素之和: 65
最大值及其位置: 25 在第 5 行,第 5 列
每一行的和:
15
40
65
90
115
```