fortran.编写子程序对数组元素从大到小排序。再调用该子程序对矩阵中的指定元素进行排序并输出排序结果。
说明下,关键是确定什么情况下停止排序~要先判定。。我出得起的就三十了。。苦逼一个。。取矩阵元素有两个方案,一是对角线元素(i=j)二是取矩阵外围一圈元素(这个不会哪)求两...
说明下,关键是确定什么情况下停止排序~要先判定。。我出得起的就三十了。。苦逼一个。。
取矩阵元素有两个方案,一是对角线元素(i=j)二是取矩阵外围一圈元素(这个不会哪)求两种解法.... 展开
取矩阵元素有两个方案,一是对角线元素(i=j)二是取矩阵外围一圈元素(这个不会哪)求两种解法.... 展开
1个回答
展开全部
“对矩阵中的指定元素进行排序”啥意思?怎么排,想要什么结果?
追问
我想知道的就是指定矩阵对角线(i=j)元素,以及指定矩阵最外层元素,或者次外层元素。把矩阵中的这些元素取出排序之后在输出排序结果就可以了。感激不尽~马上上机考试了...
追答
你只是想要一个排序算法吧,给你一个“选择排序”子程序,自己理解和根据需要变换吧
subroutine selsort(arr, num)
implicit none
integer, intent (in) :: num
integer, intent (inout) :: arr(num)
integer :: i, j, m, t
do i = 0, num-1
m = i
do j = i+1, num
if (arr(j) < arr(m)) then
m = j
end if
end do
if (i /= m) then
t = arr(i)
arr(i) = arr(m)
arr(m) = t
end if
end do
! write(*, *) arr
end subroutine selsort
program foo
implicit none
integer :: arr(8) = (/11, 5, 98, 45, 23, 18, 1, 12/)
call selsort(arr, 8)
write(*, *) arr
call selsort(arr, 3)
write(*, *) arr
end program foo
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询