fortran中 max=maxval( A ) 为求数组A 的最大值,可是有时会出现最大值求求不出的情况(max没有被赋值)

是因为A中有相同的几个最大值的原因吗?
max的显示值为NAN
换用一下方法也求不出来,为什么,是二维数组kafang本身的问题吗
max=kafang(1,1)
do i1=1,651
do j1=1,300
max1=kafang(i1,j1)
if(max1.LE.max) max=max1
end do
enddo !求出最小值
write (*,*) max
stop
end program

好吧 是因为数组了有NAN

就算有几个相同的最大值,也能求出来的。再从别的地方找找原因吧。

有时,这个词就很难搞。你能给一个实际的算例吗?追问

解决了,因为数组A里出现了nan,谢谢你热心回答!

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-02-05
NAN即无穷,数组的问题

FORTRAN编程求大神解答
求绝对值的内部函数是abs,求数组最大值的内部函数是maxval,最小值minval,他们都支持数组运算,所以程序编起来相当简单。比如一个数组为A(N),属实数域,其程序可写为 integer,parameter :: N = 10 real A(N)real A_abs_max, A_abs_min ! set value for A A = (\/ 1.0, 2....

怎样在fortran编写数组A(m,n)求最大元素的程序,请写出参考
program maxpos implicit none integer,parameter::m=1000,n=1000 real::a(m,n),themax integer::i,j !数据的输入你自己改。我这里给数组a随机赋值。call random_seed()call random_number(a)!最大值 themax=maxval(a)print*,"最大值:",themax !最大值位置 do i=1,n do j=1,m if...

求救fortran大神,小弟小白一个,请教
Read( 12 , * ) a(:) !\/\/ 读取数组 maxm = MaxVal( a ) !\/\/ MaxVal 可直接获得数组的最大值 end program maxv

FORTRAN怎么计算并输出一个二维数组A(I,J)中的最大值?
直接maxval(A)fortran程序 do i=1,n do j=1,n if A(i,j)>temp then temp = A(i,j)endif end do enddo 输出 temp

我是FORTRAN初学者,想得出一个二维数组中的最大值,说是可以用MAXVAL函数...
使用FREE FORMAT格式:注释:L和M分别是输入数组的行数和列数,AA是输入的二维数组,ANS是得到的该二维数组的最大值。这个名为MAXAA的子例程是先将二维数组AA的数字存入一个一维数组中,再使用选择法排序,得到的最大值存入ANS中。所有的实数变量都是双精度的。SUBROUTINE MAXAA(L M, AA, ANS)IM...

高分求综合运用fortran语言自编两个程序
do n=1,3 read(*,*) a(n,:)enddo write(*,*) '查询最大值输入0,查询最小值输入1'read(*,*) p if(p==0) then call MatMax(a,v)else call MatMin(a,v)endif write(*,*) '查询的值为',v end subroutine Matmax(m,max)implicit none integer::m(3,3),max max=maxval(m)...

用fortran编写程序,求出一维数组S(10)中的最大元素和最小元素,并记下...
real S(10)write(*,*) MaxVal( S ) , MinVal( S ) !最大值,最小值 write(*,*) MaxLoc( S ) , MinLoc( S ) !最大值下标,最小值下标

fortran95求数组中的最大和最小元素,并将最大和最小元素分别与数组的第...
= =你好像没打完的样子。只是求数组最大和最小元素的话,fortran是有数组专用的内部函数的,maxval和minval,以及查找最大最小元素的位置,maxloc和minloc。具体用法可自行查询工具书。

用intel fortran 编写fortran程序时的书写格式与fortran90有什么不...
5. x=(\/a,b,c,d\/)时,a,b,c,d要么都是实数(要有小数点),要么都是整数(不出现小数点)6. 对于数组求最大值(最小值)所在位置,只能用 maxwind=0.0 do i=m1,m2 do j=n1,n2 xmw=sqrt(u(i,j)**2+v(i,j)**2)if(xmw>maxwind) then maxwind=xmw; xiw=float(i);xjw=...

对于已经编好的fortran程序的结果,如何找出输出结果的最大值
嗯,你的 ld 都没有定义,也没有赋值。就这一点你的程序就完全没法继续看了。 Fortran 的优势就是矩阵运算。你的程序可以非常简单。 program main real a(3,3),b(3,3),c(3,3),cmax integer n,m print*,'输入m' read*,m print*,'输入n' read*,n print*,'输入矩阵a' read*,a ...

相似回答