Fortran只给出了第一个任期的结果?

时间:2016-10-12 01:20:33

标签: fortran

我即将计算cos(x)+1/4*cos(2x),但结果总是只给我cos(x)的结果。我的代码中的错误在哪里?

  program write
  implicit none
  integer, parameter :: N=8
  integer :: j
  real :: h, L
  real, dimension(0:N-1) ::x, fx
  real(8), parameter :: pi=4.0_8*atan(1.0_8)
  L=2*pi

  h=L/N
  do j=0,N-1
     x(j)=h*j
  end do
  do j=0,N-1
     fx(j)=cos(x(j))+1/4*cos(2*x(j))
  end do

  write(*,*),fx


  end program write

1 个答案:

答案 0 :(得分:5)

您的问题是1/4

由于14都是整数,1/4被解释为整数除法,并且任何提醒都被删除。简而言之:1/4 == 0,而1.0/4 == 1/4.0 == real(1)/4 == 0.25

请注意real(1/4) == real(0) == 0.0