24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2169  |  回复: 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:21
引用回帖:
15楼: Originally posted by 长歌-废墟 at 2011-11-10 14:07:03:
建议使用call子程序的写法,这样基本不会出错。

他这个问题跟用 function 还是 subroutine 没有关系。
17楼2011-11-10 18:47:31
已阅   回复此楼   关注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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 学硕机械工程303求调剂 +5 无名所以叫吴明 2026-03-30 5/250 2026-04-02 20:12 by hengsmith
[考研] 一志愿南昌大学324求调剂 +12 hanamiko 2026-04-01 12/600 2026-04-02 14:51 by 5896
[考研] 学硕化学工程与技术,一志愿中国海洋大学320+求调剂 +8 披星河 2026-04-02 8/400 2026-04-02 14:12 by oooqiao
[考研] 化学308分调剂 +14 你好明天你好 2026-03-30 15/750 2026-04-02 13:39 by 嘻嘻笑22
[考研] 材料专业求调剂 +10 月月鸟木 2026-04-01 10/500 2026-04-02 12:57 by wxiongid
[考研] 08开头看过来!!! +4 wwwwffffff 2026-03-31 6/300 2026-04-02 11:42 by 均值回归
[考研] 0710生物学336分求调剂 +3 kiyy 2026-04-01 3/150 2026-04-02 10:54 by w虫虫123
[考研] 材料专硕322分 +11 哈哈哈吼吼吼哈 2026-04-01 11/550 2026-04-02 10:52 by lnilvy
[考研] 070300化学求调剂 +14 小黄鸭宝 2026-03-30 14/700 2026-04-02 10:07 by oooqiao
[考研] 085600,320分求调剂 +5 大馋小子 2026-04-01 6/300 2026-04-01 19:40 by 唐沐儿
[考研] 生物与医药考研调剂 +5 铁憨憨123425 2026-03-31 5/250 2026-04-01 18:01 by syh9288
[考研] 0856,材料与化工321分求调剂 +13 大馋小子 2026-03-27 14/700 2026-04-01 15:58 by yanflower7133
[考研] 08工科,295,接受跨专业调剂 +6 lmnlzy 2026-03-31 6/300 2026-04-01 11:02 by 逆水乘风
[考研] 299求调剂 +8 嗯嗯嗯嗯2 2026-03-27 8/400 2026-03-31 18:23 by lizhi8172
[考研] 336材料求调剂 +10 陈滢莹 2026-03-26 12/600 2026-03-31 17:59 by jp9609
[考研] 物理学调剂 +4 小羊36 2026-03-30 4/200 2026-03-31 16:16 by lishahe
[考研] 0703化学321分求调剂 +10 三dd. 2026-03-30 11/550 2026-03-30 19:24 by markhwc
[考研] 348求调剂 +6 小懒虫不懒了 2026-03-28 6/300 2026-03-30 10:29 by Evan_Liu
[考研] 一志愿南京航空航天大学材料学硕求调剂 +3 @taotao 2026-03-28 3/150 2026-03-28 10:26 by JourneyLucky
[考研] 调剂 +3 李嘉图·S·路 2026-03-27 3/150 2026-03-27 11:19 by wangjy2002
信息提示
请填处理意见