Fortran编程--求高手有2列数,一列是日序,第1到365天.另一列是每天的太阳辐射,大小无规律.如何统计出连续出现4天以上 辐射值小于1000的起始日序.如下列数据中,从第5天开始,连续4个值小于1000,
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 10:50:06
Fortran编程--求高手有2列数,一列是日序,第1到365天.另一列是每天的太阳辐射,大小无规律.如何统计出连续出现4天以上 辐射值小于1000的起始日序.如下列数据中,从第5天开始,连续4个值小于1000,
Fortran编程--求高手
有2列数,一列是日序,第1到365天.另一列是每天的太阳辐射,大小无规律.如何统计出连续出现4天以上 辐射值小于1000的起始日序.
如下列数据中,从第5天开始,连续4个值小于1000,输出5.统计365组数据中,所有连续出现4次的小于1000时对应的起始日序.求高手编程.尽量用fortran.
1 100
2 800
3 1200
4 1722
5 900
6 700
7 600
8 860
9 1245
10 1024
..
..
..
365 1300
Fortran编程--求高手有2列数,一列是日序,第1到365天.另一列是每天的太阳辐射,大小无规律.如何统计出连续出现4天以上 辐射值小于1000的起始日序.如下列数据中,从第5天开始,连续4个值小于1000,
楼主的意思没表达确切.
如果连续出现 10 天呢?
算 2 次连续4个(1-4,5-8,9-10不算因为只有两天)?
算 1 次连续10个(1-10)?
算 7 次连续4个(1-4,2-5,3-6,4-7,5-8,6-9,7-10)?
如果是算作7个,那么楼上那样就可以了.
而且,这个问题根本不需要用数组(对于大量数据,不用数组可以节约很多内存).
以下代码,无需数组就能完成.我是按照“算2个”来写的.
Program Baidu_Thlws
Implicit None
Integer :: iline , ilineBegin , dayn , day , x , ios
iline = 1
ilineBegin = 0
dayn = 0
Open( 12 , File = 's2.txt' )
Do
Read(12,*,iostat=ios) day , x
if ( ios /= 0 ) Exit
if ( x < 1000 ) then
dayn = dayn + 1
if ( dayn == 1 ) then
ilineBegin = iline
elseif ( dayn >= 4 ) then
write(*,*) '本次:', ilineBegin , '到' , iline
dayn = 0
end if
else
dayn = 0
end if
iline = iline + 1
End Do
Close(12)
End Program Baidu_Thlws