Fortran Coder

楼主: filwZ
打印 上一主题 下一主题

[数值问题] 关于求平均值的问题

[复制链接]

14

帖子

1

主题

0

精华

入门

F 币
55 元
贡献
33 点
11#
 楼主| 发表于 2014-3-7 13:53:56 | 只看该作者
chuxf 发表于 2014-3-7 13:36
别人给你写的代码,你不能完全拷贝,要根据自己的情况稍作修改。别人的代码只是思路,而不是确定的解决方 ...

嗯,我就把文件的名字改了,好的,谢谢你

14

帖子

1

主题

0

精华

入门

F 币
55 元
贡献
33 点
12#
 楼主| 发表于 2014-3-9 11:46:10 | 只看该作者
chuxf 发表于 2014-3-7 13:36
别人给你写的代码,你不能完全拷贝,要根据自己的情况稍作修改。别人的代码只是思路,而不是确定的解决方 ...

还有点疑问,就是如果这半个月的数据都是不满足条件的话,<12,>3000的时候,程序就跳过了这半个月?

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

13#
发表于 2014-3-9 11:51:42 | 只看该作者
filwZ 发表于 2014-3-9 11:46
还有点疑问,就是如果这半个月的数据都是不满足条件的话,3000的时候,程序就跳过了这半个月? ...

是的,因为没有满足条件的,所以无法平均。

14

帖子

1

主题

0

精华

入门

F 币
55 元
贡献
33 点
14#
 楼主| 发表于 2014-3-9 13:07:15 | 只看该作者
chuxf 发表于 2014-3-9 11:51
是的,因为没有满足条件的,所以无法平均。

有没有办法让他读完以后也输出一行平均数为0的结果呢?

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

15#
发表于 2014-3-9 13:08:49 | 只看该作者
filwZ 发表于 2014-3-9 13:07
有没有办法让他读完以后也输出一行平均数为0的结果呢?

有办法,修改很简单。请你尝试自己修改,如有问题再追问。

14

帖子

1

主题

0

精华

入门

F 币
55 元
贡献
33 点
16#
 楼主| 发表于 2014-3-9 13:29:09 | 只看该作者
chuxf 发表于 2014-3-9 13:08
有办法,修改很简单。请你尝试自己修改,如有问题再追问。

哦,我算出来了。
[Fortran] 纯文本查看 复制代码
else if (( c==0) .and. (yearlast/=-1))then
a = 0
c = 0
 write(13,*) yearlast , monlast , a , c
     

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

17#
发表于 2014-3-9 13:33:19 | 只看该作者
filwZ 发表于 2014-3-9 13:29
哦,我算出来了。[mw_shl_code=fortran,true]else if (( c==0) .and. (yearlast/=-1))then
a = 0
c = 0

很好,别人给你写代码只是提供一种思路。

其实一个问题的确定,几句话说不清楚,很多特殊情况下你的需求不一定都要靠别人帮你实现。

能自己举一反三的学习,才值得鼓励!你很棒!

14

帖子

1

主题

0

精华

入门

F 币
55 元
贡献
33 点
18#
 楼主| 发表于 2014-3-9 13:35:04 | 只看该作者
chuxf 发表于 2014-3-9 13:33
很好,别人给你写代码只是提供一种思路。

其实一个问题的确定,几句话说不清楚,很多特殊情况下你的需求 ...

谢谢你

14

帖子

1

主题

0

精华

入门

F 币
55 元
贡献
33 点
19#
 楼主| 发表于 2014-3-9 20:05:47 | 只看该作者
chuxf 发表于 2014-3-9 13:33
很好,别人给你写代码只是提供一种思路。

其实一个问题的确定,几句话说不清楚,很多特殊情况下你的需求 ...

[Fortran] 纯文本查看 复制代码
Program main
  Implicit None
  real::v,w,pd12,py12
  integer::year1,year2,mon1,c1,c2
    open(1,file='pd12.dat')
    open(2,file='py12.dat')
    open(3,file='canshu.dat')
    do
        read(2,*)year2,py12,c2
        do
            read(1,*)year1,mon1,pd12,c1
                if((year1==year2).and.(pd12/=0.0))then
                    w=0.8363+181.77/pd12+244.55/py12
                    v=21.586*w**(-7.1891)  
                else  if((year1==year2).and.(pd12==0.0))then
                    w=0.0
                    v=0.0
                if (year1/=year2)exit
                end if
            write(3,'(1x,i5,i5,f10.1,f10.1)')year1,mon1,w,v
        end do
    end do
    close(1)
    close(2)
    close(3)
end program

14

帖子

1

主题

0

精华

入门

F 币
55 元
贡献
33 点
20#
 楼主| 发表于 2014-3-9 20:06:38 | 只看该作者
本帖最后由 filwZ 于 2014-3-9 20:13 编辑
filwZ 发表于 2014-3-9 20:05
[mw_shl_code=fortran,true]Program main
  Implicit None
  real::v,w,pd12,py12

我运行这个程序说有个断点,能帮我看下吗?我要算的是当取一个年平均值py2的时候,没半个月有一个pd12,带入公式算出w和v,
当半月的平均值为0时,就直接为0了。可是我编出这个程序老说这个有断点。

pd12.dat

3.47 KB, 下载次数: 1

半月平均值

py12.dat

162 Bytes, 下载次数: 1

年平均值

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-24 02:33

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表