
一道fortran语言编程题
一道fortran语言题,知道的麻烦给讲解下LOGICALPREAD(*,*)X,YP=.TRUE.IF(X+Y.LT.Y)P=.FALSE.Z=YIF(P)THENZ=...
一道fortran语言题,知道的麻烦给讲解下
LOGICAL P
READ(*,*) X,Y
P=.TRUE.
IF(X+Y.LT.Y) P=.FALSE.
Z=Y
IF(P)THEN
Z=X+2
ELSE
Z=X
ENDIF
WRITE(*,*)Z
END
输入3.6,-1.2后,输出的Z值是多少? 展开
LOGICAL P
READ(*,*) X,Y
P=.TRUE.
IF(X+Y.LT.Y) P=.FALSE.
Z=Y
IF(P)THEN
Z=X+2
ELSE
Z=X
ENDIF
WRITE(*,*)Z
END
输入3.6,-1.2后,输出的Z值是多少? 展开
2个回答
展开全部
LOGICAL P——p 为逻辑变量
READ(*,*) X,Y——读入变量x=3.6,y=-1.2
P=.TRUE.——P初值为“真”
IF(X+Y.LT.Y) P=.FALSE——如果x+y<y P为“假”,3.6+(-1.2)>-1.2 所以P还是“真”
Z=Y——变量Z=Y,即Z=-1.2
IF(P)THEN
Z=X+2
ELSE
Z=X
ENDIF——如果P为真Z=X+2,否则Z=X 实际上P为“真”,所以Z=3.6+2=5.6
WRITE(*,*)Z——输出Z=5.6
END——结束
READ(*,*) X,Y——读入变量x=3.6,y=-1.2
P=.TRUE.——P初值为“真”
IF(X+Y.LT.Y) P=.FALSE——如果x+y<y P为“假”,3.6+(-1.2)>-1.2 所以P还是“真”
Z=Y——变量Z=Y,即Z=-1.2
IF(P)THEN
Z=X+2
ELSE
Z=X
ENDIF——如果P为真Z=X+2,否则Z=X 实际上P为“真”,所以Z=3.6+2=5.6
WRITE(*,*)Z——输出Z=5.6
END——结束
追问
非常感谢您的详细解答,实际是(X+Y.LT.X),当时敲错了,这条是成立的。不过Z=Y这条怎么处理,在后面用不用得上?
追答
Z=Y没有作用
下面的条件语句无论条件成立与否,Z都被重新赋值了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询