24小时热门版块排行榜    

查看: 792  |  回复: 5

zyj8119

木虫 (著名写手)

[交流] 【求助】此程序怎么会数组越界?编译没有错误【已完结】 已有2人参与

CODE:
PROGRAM main
REAL,DIMENSION(1:5,1:5)::a
REAL::det,determinate
a=reshape((/0.0,-3.0,-1.0,2.0,3.0,1.0,0.0,3.0,7.0,-2.0,3.0,&
-1.0,0.0,5.0,-5.0,2.0,6.0,-4.0,1.0,2.0,-2.0,5.0,0.0,&
-1.0,3.0/),(/5,5/))
det=determinate(a,5)
WRITE(*,'("Value of determinate A=",F8.2)')det
END PROGRAM main
!
FUNCTION determinate(a,n) RESULT(det)
INTEGER::n,rn,i,j,k,m
REAL::a(1:n,1:n),det,eps=1E-8
out:DO i=1,n-1
       rn=i
           IF(ABS(a(i,i)) in:        DO
           rn=rn+1
                   IF(rn>n)THEN
                   det=0.0;EXIT
                   ELSEIF(ABS(a(rn,i))>eps)THEN
                    DO m=i,n
           a(i,m)=a(i,m)+a(m,m)
                        END DO
                        EXIT in
                END IF
        END DO in
END IF
DO k=i+1,n
DO j=i+1,n
  a(k,j)=a(k,j)-a(i,j)*a(k,i)/a(i,i)
END DO
END DO
END DO out
det=1.0
DO i=1,n
det=det*a(i,i)
END DO
END FUNCTION determinate

[ Last edited by 余泽成 on 2010-9-13 at 11:05 ]
回复此楼
好好学习,天天向上。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
★ ★ ★ ★
zyj8119(金币+1):谢谢参与
zyj8119(金币+2):谢谢回帖。 2010-09-01 10:27:33
nono2009(金币-5):专业区请勿纯表。谢谢! 2010-09-01 13:08:29
2楼2010-09-01 07:51:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sxf2012

木虫 (正式写手)


zyj8119(金币+1):谢谢参与
zyj8119(金币+2):是的。 2010-09-01 16:02:41
引用回帖:
Originally posted by zyj8119 at 2010-09-01 00:51:00:
[code]PROGRAM main
REAL,DIMENSION(1:5,1:5)::a
REAL::det,determinate
a=reshape((/0.0,-3.0,-1.0,2.0,3.0,1.0,0.0,3.0,7.0,-2.0,3.0,&
-1.0,0.0,5.0,-5.0,2.0,6.0,-4.0,1.0,2.0,-2.0,5.0,0.0,&
- ...

矩阵a是奇异的么?
3楼2010-09-01 11:06:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主


zyj8119(金币+1):谢谢参与
zyj8119(金币+3):使得,数组越界的问题很头痛。 2010-09-01 16:02:30
数组越界一般程序计算过程中发生的,与编译没有直接关系。建议通过debug自查一下。
4楼2010-09-01 13:19:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sxf2012

木虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+1):鼓励应助。 2010-09-03 06:55:37
引用回帖:
Originally posted by sxf2012 at 2010-09-01 11:06:28:


矩阵a是奇异的么?

我运行的时候,是出现A = NAN,改了个A中的数据,就算出来一个数,没出现数组越界啊~
5楼2010-09-02 20:20:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

引用回帖:
Originally posted by sxf2012 at 2010-09-02 20:20:17:


我运行的时候,是出现A = NAN,改了个A中的数据,就算出来一个数,没出现数组越界啊~

应该是数值界限的问题,此贴结贴。
好好学习,天天向上。
6楼2010-09-12 23:02:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zyj8119 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见