我正在阅读的文件中有3列,我想平均每列,并采取标准。代码现在编译,但没有打印。为什么我的程序不能打印我的语句?
这里是我的代码:
program cardata
implicit none
real, dimension(291) :: x
intEGER I,N
double precision date, odometer, fuel
real :: std=0
real :: xbar=0
open(unit=10, file="car.dat", FOrm="FORMATTED", STATUS="OLD", ACTION="READ")
read(10,*) N
do I=1,N
read(10,*) x(I)
xbar= xbar +x(I)
enddo
xbar = xbar/N
DO I =1,N
std =std +((x(I) -xbar))**2
enddo
std = SQRT((std/(N - 1)))
print*,'mean:',xbar
print*, 'std deviation:',std
close(unit=10)
end program cardata
我是相当新的这一点,任何输入将不胜感激。
的car.dat
例子:
date odometer fuel
19930114 298 22.4
19930118 566 18.1
19930118 800 18.9
19930121 960 15.8
19930125 1247 19.8
19930128 1521 17.1
19930128 1817 19.8
19930202 2079 18.0
19930202 2342 10.0
19930209 2511 16.4
19930212 2780 16.7
19930214 3024 19.0
19930215 3320 17.7
19930302 3560 16.4
19930312 3853 18.8
19930313 4105 18.5
该代码看起来没问题,它适用于我。 “没有任何东西正在印刷”是一种模棱两可的陈述。你可以补充:你如何编译它?你如何运行它?当你运行它会发生什么?你能举一个'car.dat'的例子吗? – chw21
所以这里是car.dat的示例: 日期里程表燃料 19930114 298 22.4 19930118 566 18.1 19930118 800 18.9 19930121 960 15.8 19930125 1247 19.8 19930128 1521 17.1 19930128 1817 19.8 19930202 2079 18.0 19930202 2342 10.0 19930209 2511 16.4 19930212 2780 16.7 19930214 3024 19.0 19930215 3320 17.7 19930302 3560 16.4 19930312 3853 18.8 19930313 4105 18.5 –
第一列是日期值19930114第二列是里程表566第三列是18.1。我需要计算每列的标准差和平均值,而不是每行中的每个元素。当我运行该程序时,它不显示任何内容。 –