24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2172  |  回复: 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的回帖

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的回帖
查看全部 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的回帖

snoopyzhao

至尊木虫 (职业作家)


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

另外,子程序的 return 之后,不要用 stop,stop 只在应该结束程序时才使用……
5楼2011-11-08 16:18:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

princeado

金虫 (正式写手)

引用回帖:
5楼: Originally posted by snoopyzhao at 2011-11-08 16:18:53:
fortran 对声明阶段赋值的变量自动赋予 SAVE 属性,这样,在这个子程的连续调过程,在下一次执行时,其初始值为一次调用结束时的值……

另外,子程序的 return 之后,不要用 stop,stop 只在应该结束程序时才使 ...

您的意思是是不是我原来的程序每次调用完之后,m的值都是上一次结束时的m值,所以才会出错?
6楼2011-11-08 16:28:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 280求调剂 +13 咕噜晓晓 2026-04-02 14/700 2026-04-02 22:53 by 无际的草原
[考研] 085600调剂 +3 1amJJ 2026-04-02 3/150 2026-04-02 22:00 by 科研小专家
[考研] 321求调剂 一志愿 浙江工业大学生物医药 +5 嘿嘿HC 2026-04-01 6/300 2026-04-02 15:23 by sophie2180
[考研] 一志愿085600中科院宁波所276分求调剂 +26 材料学257求调剂 2026-03-28 27/1350 2026-04-02 15:15 by chyhaha
[考研] 求调剂,一志愿 南京航空航天大学 ,080500材料科学与工程学硕,总分289分 +11 @taotao 2026-03-29 11/550 2026-04-02 10:04 by realme321
[考研] 建环,能源,土木老师路过看一看!!! +4 嘿嘿uu 2026-04-01 4/200 2026-04-01 20:42 by 无懈可击111
[考研] 333求调剂 +4 阿科逸 2026-03-31 4/200 2026-04-01 09:11 by jp9609
[考研] 土木304求调剂 +5 顶级擦擦 2026-03-31 5/250 2026-04-01 08:15 by fdcxdystjk¥
[考研] 材料工程085601数二英一335求调剂 +5 双马尾痞老板2 2026-03-31 5/250 2026-03-31 19:07 by Wang200018
[考研] 求调剂 生物学 377分 +6 zzll03 2026-03-31 6/300 2026-03-31 17:33 by 唐沐儿
[考研] 求化学调剂 +12 wulanna 2026-03-28 12/600 2026-03-31 16:38 by 690616278
[考研] 材料与化工272求调剂 +25 阿斯蒂芬2004 2026-03-28 25/1250 2026-03-31 16:27 by hypershenger
[考研] 求调剂 +8 11ggg 2026-03-30 8/400 2026-03-31 13:56 by nanaliuyun
[考研] 266分,求材料冶金能源化工等调剂 +8 哇呼哼呼哼 2026-03-27 10/500 2026-03-31 13:35 by Huaxue_Wang
[考研] 303求调剂 +7 DLkz1314. 2026-03-30 7/350 2026-03-30 16:05 by shuang5186
[考研] 332求92调剂 +8 蕉蕉123 2026-03-28 8/400 2026-03-29 10:46 by 周梓丹
[考研] 085600,专业课化工原理,321分求调剂 +5 大馋小子 2026-03-28 5/250 2026-03-29 08:56 by qingfeng258
[考研] 调剂考研 +3 王杰一 2026-03-29 3/150 2026-03-29 08:09 by fmesaito
[考研] 085405 考的11408求各位老师带走 +3 Qiu学ing 2026-03-28 3/150 2026-03-28 09:19 by 乐呵呵的追梦人
[考研] 265求调剂 +8 小木虫085600 2026-03-27 8/400 2026-03-27 22:16 by 无际的草原
信息提示
请填处理意见