24小时热门版块排行榜    

查看: 976  |  回复: 6

dailjiao0706

新虫 (初入文坛)

[求助] 只有这么点金币了,帮忙看看吧。非常简单的程序,都不好意思拿出来 已有5人参与

PROGRAM ekjunyun
INTEGER :: N=100
INTEGER :: i
real(8) :: eC1=0.000000000000000E+000,eC2=33.5369210179650  
real(8) :: du
REAL(8),DIMENSION (1:100) :: ek_c
OPEN(UNIT=14,FILE='ek_c.dat')
du=(eC2-eC1)/99
write (*,*) "du=",du
ek_c(1)=eC1
do i=2,100,du
ek_c(y)=ek_c(y-1)+du
write(14,*) ek_c(y)
end do
end
上面这是我编的程序,目的是想在ec1和ec2数值间得到均匀等差数值放在数组中。但是运行的时候有一个警告
Warning: Variable Y is used before its value has been defined
ek_c(y)=ek_c(y-1)+du
不知道怎么改一下,求帮忙
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 辛苦了 2014-01-05 15:09:28
把 y 换成 i  就行了。 在do循环里,你的循环变量是i  ,你却写了y
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
2楼2013-12-27 17:41:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dailjiao0706

新虫 (初入文坛)

改过来以后的确是没有问题了,遗憾的是还不行。黑色屏幕上显示program exception—integer devide by zero
3楼2013-12-27 18:59:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

btx97

金虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 辛苦了 2014-01-05 15:09:47
不知道错误提示上的错误在哪,不过
do i=2,100,du 这行有错吧。
i是integer, du是real. 类型都对不起来呀
4楼2013-12-28 02:02:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sxf2012

木虫 (正式写手)

【答案】应助回帖


jjdg: 金币+1, 辛苦了 2014-01-05 15:10:03
do i=2,100,du
ek_c(y)=ek_c(y-1)+du
write(14,*) ek_c(y)
end do

-->
do i=2,100
ek_c(i)=ek_c(i-1)+du
write(14,*) ek_c(i)
end do
5楼2014-01-05 12:28:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

冥·夜游神

新虫 (初入文坛)

【答案】应助回帖

除了楼上说的问题   你的数组是的范围是1~100但是你用du作为循环的步长?那你的数组范围就不够用了
6楼2014-01-07 17:27:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

学虫dj

金虫 (正式写手)

【答案】应助回帖

DO 循环后面的du变量去掉,不应该有,还有就上面所说的了
不过我没有查到书上明确说do循环中的计数器和终止值和增值必须是INTEGER,REAL 也可以,4楼说的不会影响DO循环
穷则独善其事,达则兼济天下
7楼2014-01-07 22:18:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dailjiao0706 的主题更新
信息提示
请填处理意见