回 帖 发 新 帖 刷新版面

主题:运行结果不对

program main
   implicit none
   integer:: n = 10
   real:: y
   !print *, 'enter the number n:'
   !read(unit = *, fmt = *), n
   call sun(n, y)
   write(unit = *, fmt = *), 'y =', y
end program main

subroutine sun(n, s)
! 子例程序
   implicit none
   integer:: i, n
   real:: s, t
   s = 0.0
   do i = 1, n
      t = 1/i
      s = s+t
   enddo
  print *, 's =', s, 'n =', n
end subroutine

运行结果不对,运行后,s=1.00000,n=10,y=1.0000.
不知原因是什么?求指教

回复列表 (共6个回复)

沙发

1/2=0

板凳

program main
   implicit none
   integer:: n = 10
   real:: y
   !print *, 'enter the number n:'
   !read(unit = *, fmt = *), n
   call sun(n, y)
   write(unit = *, fmt = *), 'y =', y
end program main

subroutine sun(n, s)
! 子例程序
   implicit none
   integer:: i, n
   real:: s, t
   s = 0.0
   do i = 1, n
      t = 1.0/i  !要将这里的1/i改为1.0/i因为1/i是整理,所以。。。。。。
      s = s+t
   enddo
  print *, 's =', s, 'n =', n
end subroutine

3 楼

[quote]1/2=0[/quote]
楼主是只要代码不要原因, 勋哥, 我们飘过吧~

4 楼

无所谓,因为这个社会就是这样,不求最好,只求最贵

5 楼

安慰!

6 楼

习惯就好,每个人需求不一样。但只要结果不要原因确实对学习来说是不可取的。除非楼主只是为了应付。

我来回复

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