iostat
'un kullanımını anlıyorum, terminalden giriş yaptığımızda, programın giriş sonuna ulaşıldığını anlayabilmesi için io<0
durumunu nasıl yapabilirim? Basit bir kodiostat ve
ortalama bulmak için:
program mean
implicit none
real :: x
real :: gmean, amean, hmean
real :: summ,pro,invsum
integer :: i, valid
integer :: io, countt
countt=0
valid=0
summ=0
pro=1
invsum=0
do
read(*,*,iostat=io) x
if (io<0) exit
countt=countt+1
if (io>0) then
write(*,*) 'error in input..try again !!!'
else
write(*,*) 'Input data #.',countt,':',x
if (x<=0) then
write(*,*) 'input <=0..ignored !!'
else
valid = valid + 1
summ = summ + x
pro = pro*x
invsum = invsum + (1.0/x)
end if
end if
end do
if (valid>0) then
amean=summ/valid
gmean = pro**(1.0/valid)
hmean=valid/invsum
write(*,*) 'number of valid items --->',valid
write(*,*) 'arithmetic mean --> ',amean
write(*,*) 'geometric mean --> ',gmean
write(*,*) 'harmonic mean --> ',hmean
else
write(*,*) 'no valid inputs !!'
end if
end program mean
Ben girdiler soran devam ediyor dışında kod her şey çalışıyor çalıştırdığınızda. io<0
'u nasıl yapacağımı anlamıyorum. Dosyanın sonuna sinyal d - Linux ve MAC OS Unix sistemlerinde
ohh .... dan ama nasıl çalışır? – ss1729
@ ss1729 Sadece satır başına giriş sağlar. Dosya sonu sinyali, dosyanın sonunda, sinyaldir :) –