以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上。请填空

main(){intx,y,z,max,*px,*py,*pz,*pmax;scanf("%d%d%d",&x,&y,&z);px=&x;py=&y;pz=&z;pmax... main()
{ int x,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x; py=&y; pz=&z; pmax=&max;
_____;
if (*pmax < *py) *pmax=*py;
if (*pmax < *pz) *pmax=*pz;
printf("max=%d\n", max);
}
.
求帮忙
展开
 我来答
百度网友5b9bd189c
2012-04-26 · TA获得超过4285个赞
知道大有可为答主
回答量:906
采纳率:100%
帮助的人:1416万
展开全部
首先,定义了几个指针:px指向x,py指向y,pz指向z,pmax指向最大的一个数
因为'*'是取内容运算符,也就是取指针指向的变量的内容。
所以*px就等同于x的值,*py就等同于y的值,*pz就等同于z的值,*pmax就等同于max的值。
这些明白了吧。
再看逻辑:
先让x作为最大的值,就是max=x,也就是*pmax=*px;这就是横线上应该填的内容。
然后再让max与y比较,如果max小于y的话,就让y作为最大的值,也就是*pmax=*py;
最后再让max与z比较,如果max小于z的话,就让z作为最大的值,也就是*pmax=*pz;

最终max的值就是xyz中最大的那个。

记住*是取内容运算符,&是取地址运算符。可能指针让人看着比较头疼,多看看就行了。

希望能帮到你!
追问
那么如果输入abc的值分别为3,5,4,则首先是max=a=3,接下来执行if (*pmax < *py) *pmax=*py;则此时*pmax里面的数是5,接下来执行if (*pmax < *pz) *pmax=*pz; 则*pmax里面的值变为4,这样的话最后输出的结果是4吧?
(真的很感谢你的回答,希望能再帮忙一下,谢谢!)
追答
要想执行 *pmax=*pz;,得先判断if语句里的条件是不是成立。
如果*pmax < *pz成立,就会执行,如果不成立的话,是不会执行的。
当max=5的时候,跟4比较的话,5<4不成立,所以条件是假,不会执行 *pmax=*pz。
所以最大值还是5。你体会一下
灰鸽搜东西
2013-03-10
知道答主
回答量:42
采纳率:0%
帮助的人:3.7万
展开全部
*pmax=*px
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stayskysmall
2012-04-25 · 超过13用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:31.9万
展开全部
填空为: *pmax=*px
追问
怎么理解呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式