一道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值是多少?
展开
 我来答
benxun123
2012-08-09
知道答主
回答量:13
采纳率:0%
帮助的人:14.9万
展开全部
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——结束
追问
非常感谢您的详细解答,实际是(X+Y.LT.X),当时敲错了,这条是成立的。不过Z=Y这条怎么处理,在后面用不用得上?
追答
Z=Y没有作用
下面的条件语句无论条件成立与否,Z都被重新赋值了
风之影武士
2012-08-08 · 超过10用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:37.2万
展开全部
3.6
注意(x+y。LT。y)成立
追问
实际是(X+Y.LT.X),当时敲错了,不过确实是成立了,答案也对了,很奇怪。Z=Y这条怎么处理呀?
追答
确实是5.6,推荐答案说的很清楚,Z=Y,你不用管,至始至终X的值没有发生变化,而且最后一个IF语句中Z的值只与X有关。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式