Fortran编程--求高手有2列数,一列是日序,第1到365天.另一列是每天的太阳辐射,大小无规律.如何统计出连续出现4天以上 辐射值小于1000的起始日序.如下列数据中,从第5天开始,连续4个值小于1000,
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/20 16:24:19
![Fortran编程--求高手有2列数,一列是日序,第1到365天.另一列是每天的太阳辐射,大小无规律.如何统计出连续出现4天以上 辐射值小于1000的起始日序.如下列数据中,从第5天开始,连续4个值小于1000,](/uploads/image/z/9622104-24-4.jpg?t=Fortran%E7%BC%96%E7%A8%8B--%E6%B1%82%E9%AB%98%E6%89%8B%E6%9C%892%E5%88%97%E6%95%B0%2C%E4%B8%80%E5%88%97%E6%98%AF%E6%97%A5%E5%BA%8F%2C%E7%AC%AC1%E5%88%B0365%E5%A4%A9.%E5%8F%A6%E4%B8%80%E5%88%97%E6%98%AF%E6%AF%8F%E5%A4%A9%E7%9A%84%E5%A4%AA%E9%98%B3%E8%BE%90%E5%B0%84%2C%E5%A4%A7%E5%B0%8F%E6%97%A0%E8%A7%84%E5%BE%8B.%E5%A6%82%E4%BD%95%E7%BB%9F%E8%AE%A1%E5%87%BA%E8%BF%9E%E7%BB%AD%E5%87%BA%E7%8E%B04%E5%A4%A9%E4%BB%A5%E4%B8%8A+%E8%BE%90%E5%B0%84%E5%80%BC%E5%B0%8F%E4%BA%8E1000%E7%9A%84%E8%B5%B7%E5%A7%8B%E6%97%A5%E5%BA%8F.%E5%A6%82%E4%B8%8B%E5%88%97%E6%95%B0%E6%8D%AE%E4%B8%AD%2C%E4%BB%8E%E7%AC%AC5%E5%A4%A9%E5%BC%80%E5%A7%8B%2C%E8%BF%9E%E7%BB%AD4%E4%B8%AA%E5%80%BC%E5%B0%8F%E4%BA%8E1000%2C)
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