回 帖 发 新 帖 刷新版面

主题:运行时出错了,不知原因,求大神解释

function f(x)result(n)
 
       if(x>-14.178.and.x<=18.757)then 
     n=1
    elseif(x>-56.100.and.x<=-55.400.or.x>-51.700.and.x<=-51.100& 
      .or. x>-38.100.and.x<=-32.600.or.x>-32.000.and.x<=-30.200&
      .or. x>-15.500.and.x<=-12.300)then
     n=0

      else
     n=-1
   endif
   end
  
program gz2

real x,a
x=-59.243

print*, x                   
    do while (x<18.757)
      a=x
      i=f(x)

      select case(i)
         case(1)
         x=x+1.99
         case(0)
         x=x+1.44
         case(-1)
         x=x+2.86
      end select
       print*,x,x-a

    end do

end

回复列表 (共11个回复)

11 楼

[quote]不赋予初值,不是默认为0吗?
而且赋了初值为0后
运行结果还一样从7到10
[/quote]
标准没有规定有默认值, 某些编译器或者在debug模式下可能会帮你默认为0, 但最好不要利用这个.
另外的问题貌似在另外一个帖子回答了.

我来回复

您尚未登录,请登录后再回复。点此登录或注册