24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2168  |  回复: 20
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

princeado

金虫 (正式写手)

[求助] 大家帮我看一个fortran的程序,我总是计算不出正确的结果

最近刚学fortran,开始编小小程序试手,下面是我弄的一个程序,没有错误,但总是运行不出正确的结果,程序是想通过do循环对数组a进行赋值,用的是语句a(i)=jiecheng(i),jiecheng是我自定义的函数,求每个数对应的阶乘。所有程序如下,哪位高手帮我看看问题在哪里。
        program test01
implicit none
integer :: i
real :: a(5)
real,external :: jiecheng
     do i=1,5
       a(i)=jiecheng(i)   
           end do
             write(*,*) a
           stop
           end
                   function jiecheng(x)
                   implicit none
                   integer x
            real jiecheng
           integer :: ii=1
           integer :: m=1
                   do ii=1,x
                       m=m*ii
                       end do
                           jiecheng=m
                                                  return
                           stop
                           end
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


余泽成(金币+1): 鼓励交流! 2011-11-13 21:03:41
引用回帖:
13楼: Originally posted by princeado at 2011-11-09 07:37:21:
晚上回去翻书也看到了啊,我这fortran初学者就遇到了这样的问题,昨天下午还给彭国伦发邮件请教去了,呵呵

我很好奇,他给你啥样的回复?

这个 save 属性是标准中要求的,所有的编译器都是一样的行为……
18楼2011-11-10 18:48:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 21 个回答

hhucy

实习版主 (著名写手)

DOE锅炉工

引用回帖:
2楼: Originally posted by snoopyzhao at 2011-11-08 15:50:49:
把 jiecheng 中的下列语句
[cdoe]
     integer :: ii=1
     integer :: m=1
[/code]
修改成下面就可以了:
CODE:
      integer :: ii
      integer :: m
      m=1

至于为什么,可以参考 ...

好可怕的变量
人生那么多不确定,你怕什么
3楼2011-11-08 16:06:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

princeado

金虫 (正式写手)

引用回帖:
2楼: Originally posted by snoopyzhao at 2011-11-08 15:50:49:
把 jiecheng 中的下列语句
[cdoe]
     integer :: ii=1
     integer :: m=1
[/code]
修改成下面就可以了:
CODE:
      integer :: ii
      integer :: m
      m=1

至于为什么,可以参考 ...

原因不是很清楚,您能再帮我解释一下吗?
4楼2011-11-08 16:18:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


余泽成(金币+1): 谢谢参与应助! 2011-11-08 18:10:46
fortran 对声明阶段赋值的变量自动赋予 SAVE 属性,这样,在这个子程的连续调过程,在下一次执行时,其初始值为一次调用结束时的值……

另外,子程序的 return 之后,不要用 stop,stop 只在应该结束程序时才使用……
5楼2011-11-08 16:18:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 299求调剂 +3 雾与海 2026-04-02 4/200 2026-04-02 17:42 by 梨子~
[考研] 求生物学调剂 +9 15172915737 2026-04-01 9/450 2026-04-02 17:14 by Jaylen.
[考研] 280求调剂 +8 咕噜晓晓 2026-04-02 9/450 2026-04-02 16:52 by 1939136013狗壮
[考研] 290求调剂 +3 1314捧花 2026-04-02 3/150 2026-04-02 13:34 by Ecowxq666!
[考研] 材料科学与工程调剂 +18 深V宿舍吧 2026-03-30 19/950 2026-04-02 10:28 by sanrepian
[考研] 一志愿厦门大学化学工程(专硕)-数二英二406分-求调剂 +5 厦大化工 2026-04-01 5/250 2026-04-02 10:03 by jp9609
[考研] 343求调剂085601 +4 要努力学习x 2026-03-29 5/250 2026-04-02 09:01 by xuhui0306
[考研] 302求调剂一志愿北航070300,本科郑大化学 +8 圣日耳曼条 2026-04-01 11/550 2026-04-02 07:40 by chemdavid
[考研] 材料与化工(0856)304求B区调剂 +8 邱gl 2026-03-30 16/800 2026-04-01 17:58 by 邱gl
[考研] 324求调剂 +10 hanamiko 2026-03-26 12/600 2026-04-01 16:59 by oooqiao
[考研] 【调剂】一志愿厦大生物与医药调剂 +3 Echo虾米 2026-03-31 3/150 2026-04-01 08:40 by JourneyLucky
[考研] 土木304求调剂 +5 顶级擦擦 2026-03-31 5/250 2026-04-01 08:15 by fdcxdystjk¥
[考研] 070300化学354求调剂 +15 101次希望 2026-03-28 15/750 2026-03-31 17:58 by jp9609
[考博] 材料专业申博 +5 杜雨婷dyt 2026-03-29 5/250 2026-03-31 11:19 by oooqiao
[考研] 293求调剂 +3 末未mm 2026-03-30 5/250 2026-03-30 17:23 by 王保杰33
[考研] 296求调剂 +10 彼岸t 2026-03-29 10/500 2026-03-30 10:50 by 探123
[考研] 331环境科学与工程求调剂 +3 熠然好运气 2026-03-27 3/150 2026-03-28 04:11 by fmesaito
[考研] 352分 化工与材料 +5 海纳百川Ly 2026-03-27 5/250 2026-03-28 03:39 by fmesaito
[考研] 调剂求收留 +7 果然有我 2026-03-26 7/350 2026-03-27 00:26 by wxiongid
[考研] 341求调剂 +7 青柠檬1 2026-03-26 7/350 2026-03-27 00:19 by wxiongid
信息提示
请填处理意见