24小时热门版块排行榜    

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

金虫 (正式写手)

引用回帖:
9楼: Originally posted by snoopyzhao at 2011-11-08 16:53:36:
区别在于
integer :: m
m=1
中的 m是一个局变变量,不具有 SAVE 属性,每次调用该子程时,m 都会被重新赋值。

而 integer :: m=1 中的 m 虽然是一个局部变量,但具有 SAVE 属性,这里的 1 只是主程序初始化 ...

好的,非常感谢了,我再琢磨琢磨啊!
10楼2011-11-08 16:56:08
已阅   回复此楼   关注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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 302求调剂一志愿华中师范大学 +7 小江小江江江 2026-04-02 7/350 2026-04-02 21:48 by macy2011
[考研] 070305高分子化学与物理 304分求调剂 +16 c297914 2026-03-28 16/800 2026-04-02 20:50 by dongzh2009
[考研] 一志愿华南师范大学-22408计算机-292分-求华南师范大学调剂 +4 爱读书的小鳄鱼 2026-04-02 4/200 2026-04-02 18:35 by 求调剂zz
[考研] 0832食品科学与工程学硕282调剂 +4 鱼在水中游a 2026-04-02 7/350 2026-04-02 14:12 by baoball
[考研] 282求调剂 +13 呼吸都是减肥 2026-04-01 13/650 2026-04-02 14:10 by baoball
[考研] 266求调剂 +4 学员97LZgn 2026-04-02 4/200 2026-04-02 13:03 by yulian1987
[考研] 311求调剂 +14 蓝月亮亮 2026-03-30 14/700 2026-04-02 12:18 by 1753564080
[考研] 求调剂,一志愿南京师范大学计算机专硕,初试373,六级通过, +3 计算机追梦人 2026-04-01 3/150 2026-04-02 07:57 by fxue1114
[考研] 085410 一志愿211 22408分数359求调剂 +3 123456789qw 2026-03-31 4/200 2026-04-02 00:06 by 义文wang
[考博] 26年申博 +3 staryer 2026-03-30 4/200 2026-04-01 23:21 by ai4pharm
[考研] 266分,一志愿电气工程,本科材料,求材料专业调剂 +10 哇呼哼呼哼 2026-04-01 11/550 2026-04-01 21:48 by chyhaha
[考研] 326求调剂 +4 崽崽仔 2026-03-31 4/200 2026-04-01 09:58 by 我的船我的海
[考研] 求0861交通运输专硕or材料专硕调剂 +4 勒布朗@ 2026-03-31 4/200 2026-04-01 09:54 by 一只好果子?
[考研] 求调剂 生物学 377分 +6 zzll03 2026-03-31 6/300 2026-03-31 17:33 by 唐沐儿
[考研] 085601 329分调剂 +6 yzsa12 2026-03-31 6/300 2026-03-31 15:23 by yanflower7133
[考研] 262求调剂 +7 ZZ..000 2026-03-30 8/400 2026-03-31 10:05 by cal0306
[考研] 08工科,295,接受跨专业调剂 +6 lmnlzy 2026-03-30 6/300 2026-03-31 10:04 by cal0306
[考研] 293分求调剂,外语为俄语 +5 加一一九 2026-03-31 5/250 2026-03-31 09:39 by zhshch
[考研] 2026年华南师范大学欢迎化学,化工,生物,生医工等专业优秀学子加入! +3 llss0711 2026-03-28 6/300 2026-03-29 10:26 by llss0711
[考研] 330一志愿中国海洋大学 化学工程 085602 有读博意愿 求调剂 +3 wywy.. 2026-03-27 4/200 2026-03-28 03:32 by fmesaito
信息提示
请填处理意见