主题:[讨论]为什么就是不对?
以下是错误提示:
ex0712.f90:15.18:
write(*,"('?')")
[cuicui@benatar 1]$ gfortran ex0712.f90
ex0712.f90:15.18:
write(*,"('?')")
1
Error: Unexpected WRITE statement in WHERE block at (1)
ex0712.f90:8.7:
where(a(i:1)<30000.)
1
Error: Rank mismatch in array reference at (1) (1/2)
ex0712.f90:10.29:
elsewhere(30000.<a(i,1) .and. a(i,1)<50000.)
1
Error: WHERE/ELSEWHERE clause at (1) requires a LOGICAL array
ex0712.f90:12.10:
以下是编写的程序:
program ex0712
implicit none
real :: a(10,2)
integer :: i
do i=1,10
write(*,"(1x)")'income='
read(*,*)a(:,1)
where(a(i:1)<30000.)
a(i,2)=a(i,1)*0.1
elsewhere(30000.<a(i,1) .and. a(i,1)<50000.)
a(i,2)=(a(i,1)-30000.)*0.12+30000.*0.1
elsewhere(a(i,1)>50000.)
a(i,2)=(a(i,1)-50000.)*0.15+20000.*0.12+30000.*0.1
elsewhere(a(i,1)<=0.)
write(*,"('?')")
end where
end do
write(*,*)a(10,2)
end
ex0712.f90:15.18:
write(*,"('?')")
[cuicui@benatar 1]$ gfortran ex0712.f90
ex0712.f90:15.18:
write(*,"('?')")
1
Error: Unexpected WRITE statement in WHERE block at (1)
ex0712.f90:8.7:
where(a(i:1)<30000.)
1
Error: Rank mismatch in array reference at (1) (1/2)
ex0712.f90:10.29:
elsewhere(30000.<a(i,1) .and. a(i,1)<50000.)
1
Error: WHERE/ELSEWHERE clause at (1) requires a LOGICAL array
ex0712.f90:12.10:
以下是编写的程序:
program ex0712
implicit none
real :: a(10,2)
integer :: i
do i=1,10
write(*,"(1x)")'income='
read(*,*)a(:,1)
where(a(i:1)<30000.)
a(i,2)=a(i,1)*0.1
elsewhere(30000.<a(i,1) .and. a(i,1)<50000.)
a(i,2)=(a(i,1)-30000.)*0.12+30000.*0.1
elsewhere(a(i,1)>50000.)
a(i,2)=(a(i,1)-50000.)*0.15+20000.*0.12+30000.*0.1
elsewhere(a(i,1)<=0.)
write(*,"('?')")
end where
end do
write(*,*)a(10,2)
end