24小时热门版块排行榜    

CyRhmU.jpeg
查看: 673  |  回复: 8
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

tpp001

金虫 (著名写手)

[交流] 【求助】写了一个小程序出错,请大家帮忙【已解决】

我想编一个从一个文件z.txt中读取数据,把这个文件中的数据都除以一个常数(changshu),把结果写入一个名字为jieguo的文件中,我是新手,刚刚开始学,请大家帮忙谢谢了!

program xiangchu
integer i
parameter (j=94240, chushu=1.375E-3) !定义了文件中有多少行和除数.
real Z(i), N(i)
open (1,file="z.txt",status='old') !打开了一个z.txt文件
read (1,*)(Z(i),i=1,j) !读取文件中的数据
close(1)
do i=1,j,1
N(i)=Z(i)/chushu !计算文件中的每一个数除以一个常数
end do
write(jieguo)N(i) !把结果写入一个名字是jieguo的文件中
end

[ Last edited by nono2009 on 2009-12-25 at 09:17 ]
回复此楼
迷茫在知识的海洋里,需要你的指导。thankyou
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangxx978

新虫 (初入文坛)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
jjdg(金币+0,VIP+0):变量也可以的啊! 11-20 00:11
senlia(金币+1,VIP+0):新虫鼓励一个 12-23 16:52
定义数组一定要记得用常量!
5楼2009-11-19 23:53:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

senlia

木虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+1,VIP+0):专家出马了,呵呵,辛苦! 11-4 10:34
open (1,file="z.txt",status='old') 是双引号吗?我这儿没有编译软件 没法调试 你先试试这一句有没有出错 貌似该是单引号吧
real Z(i), N(i)错了 你这里的i还没有值呢 应该是real Z(j), N(j)吧?
write(jieguo)N(i)错了 首先 write函数的格式是write(端口号,输出格式) 你这里应该先打开一个名为jieguo的文件open(1,file=’jieguo‘) 第二 你这里的i已经固定了等于j 你应该循环输出
do i=1,j
write(1,*) N(i) !以默认格式*输出到端口号为1对应的文件中
end do
或者好像直接写write(1,*) N也可以的
你试试吧
书到用时方恨少, 天涯何处无芳草.
2楼2009-11-04 10:29:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tpp001

金虫 (著名写手)

引用回帖:
Originally posted by senlia at 2009-11-4 10:29:
open (1,file="z.txt",status='old') 是双引号吗?我这儿没有编译软件 没法调试 你先试试这一句有没有出错 貌似该是单引号吧
real Z(i), N(i)错了 你这里的i还没有值呢 应该是real Z(j), N(j)吧?
wr ...

好了,谢谢,那个双引号,单引号都可以的
另外,为什么我定义real Z(i), N(i)不可以,一定要定义real Z(j), N(j)呢?
迷茫在知识的海洋里,需要你的指导。thankyou
3楼2009-11-04 12:41:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

senlia

木虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+1,VIP+0):谢谢专家生动的解释,认真的态度! 11-4 14:25
首先 i是变量 不是常数(parameter) 你想想 你让程序给一个数组[或者矩阵]分配内存空间的时候 这个空间变来变去的 谁受得了?你让人家也为难呀!
然后 你在这个程序中定义Z和N的时候 数组大小i还没定义过 就相当于是老板跟你说:"去吧" 去哪儿呢?他不跟你说去哪儿 你去哪儿?你也为难呀!
当然 在函数传递的时候 比如函数[或者子例程]subroutine func(n) 在这个函数[子例程]里面是可以用变量n来定义数组的大小的 比如你写real Z(n)就是定义大小为n的数组Z

修改一个错误 第一次的回复中 应该是 i是等于j+1 而不是i等于j

[ Last edited by senlia on 2009-11-4 at 13:18 ]
书到用时方恨少, 天涯何处无芳草.
4楼2009-11-04 13:00:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见