Fortran语言小程序编写,请各路大神帮忙

Fortran语言小程序编写,请各路大神帮忙

A文件中有K*N个数(K组数),逗号隔开排列.

转换生成B文件,格式见下,每隔六组取一组数,每组数前加一行,两个数为3600*K/6 3600*K/6/M.


还是不行,无法输出.我给你看看两种格式,你看哪个更好处理

f69fe 1年前 已收到1个回答 举报

天鸭海鹪 幼苗

共回答了17个问题采纳率:94.1% 举报

表示很难理解你的需求.

1年前 追问

3

f69fe 举报

就是每十分钟有N个数,然后提取第6,12,18...时刻的数(即一个小时,两个小时,三个小时)。 在每个时刻数第一行加上对应的时间和相应的步数,然后每个时刻的数加上1到N的编号。

举报 天鸭海鹪

A 文件是多少行多少列? 你说 “两个数为3600*K/6 3600*K/6/M。” 其中的 M 是什么?

f69fe 举报

A文件有K*N个数,用逗号隔开。 M就是时间步长(1秒对应1/M步) 转换后形式问题后边我加了

举报 天鸭海鹪

我是问,A文件有多少行多少列? 如果有 K*N 个数,是否是规则的 K 行 N 列 或 N 列 K 行? 从图片上看,A文件貌似有点乱。 A 文件中的数据如何排列,会影响这个程序的复杂程度。

f69fe 举报

没有行列,一个一个数排列的

举报 天鸭海鹪

还是不太确定我理解的是否是你的需求。 你试试下面的代码,如果不对再追问 (需补齐 K N M 的值,及 A B 文件名) Program Baidu_Thlws Implicit None Integer , parameter :: K = Integer , parameter :: N = Integer , parameter :: M = 5 Real :: d( N , K ) integer :: i , j Open( 12 , File = 'A文件' ) Read( 12 , * ) d Close( 12 ) Open( 13 , File = 'B文件' ) Do i = 6 , K , 6 write( 13 , * ) 3600 * i / 6 , 3600 * i / 6 / ( M ) Do j = 1 , N write( 13 , * ) j , d( j , i ) End Do End Do Close( 13 ) End Program Baidu_Thlws

f69fe 举报

能不能运行时提示输入文件名,输出文件名为 fort.63

举报 天鸭海鹪

Program Baidu_Thlws Implicit None Integer , parameter :: K = Integer , parameter :: N = Integer , parameter :: M = 5 Real :: d( N , K ) integer :: i , j character( Len = 512 ) :: cFile Read( * , * ) cFile Open( 12 , File = Trim(cFile) ) Read( 12 , * ) d Close( 12 ) Open( 13 , File = 'fort.63' ) Do i = 6 , K , 6 write( 13 , * ) 3600 * i / 6 , 3600 * i / 6 / ( M ) Do j = 1 , N write( 13 , * ) j , d( j , i ) End Do End Do Close( 13 ) End Program Baidu_Thlws
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.022 s. - webmaster@yulucn.com