注册
登录
论坛
搜索
万卷图书
»
算法
» 复合运算应用
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
发短消息
加为好友
wangyu
当前离线
UID
471
帖子
31
精华
0
积分
0
阅读权限
10
在线时间
6 小时
注册时间
2010-5-23
最后登录
2010-6-10
新手上路
1
#
打印
字体大小:
t
T
wangyu
发表于 2010-6-6 08:57
|
只看该作者
复合运算应用
应用
,
运算
,
复合
#include<stdio.h>
main()
{
int a;
printf("please input:\n");
scanf("%d",&a);
a+=a*=a/=a-6;
printf("the result is %d\n",a);
}
a+=a*=a/=a-6 这一复合运算如何运算的呢?请老师举例说明吧,谢谢老师
收藏
分享
评分
回复
引用
订阅
TOP
发短消息
加为好友
wangyu
当前离线
UID
471
帖子
31
精华
0
积分
0
阅读权限
10
在线时间
6 小时
注册时间
2010-5-23
最后登录
2010-6-10
新手上路
2
#
wangyu
发表于 2010-6-6 09:26
|
只看该作者
是否有运算优先级的问题呢
回复
引用
TOP
发短消息
加为好友
fwbook
当前离线
UID
1
帖子
2324
精华
0
积分
0
阅读权限
200
在线时间
1590 小时
注册时间
2009-7-30
最后登录
2024-12-21
管理员
3
#
fwbook
发表于 2010-6-7 09:12
|
只看该作者
这个主要复合运算符的优先级。
+= -= *= /=的优先级都非常低,并且遵循的是右结合。所以整个表达式最先计算的是
a/=a-6
假设a=7,则
a/=a-6=a/(a-6)=7
然后运算
a*=a/=a-6=a*(a/=a-6)=7*7=49
最后运算
a+=a*=a/=a-6=a+(a*=a/=a-6)=49+49=98
回复
引用
TOP
发短消息
加为好友
wangyu
当前离线
UID
471
帖子
31
精华
0
积分
0
阅读权限
10
在线时间
6 小时
注册时间
2010-5-23
最后登录
2010-6-10
新手上路
4
#
wangyu
发表于 2010-6-7 10:39
|
只看该作者
谢谢老师的回答
回复
引用
TOP
发短消息
加为好友
fwbook
当前离线
UID
1
帖子
2324
精华
0
积分
0
阅读权限
200
在线时间
1590 小时
注册时间
2009-7-30
最后登录
2024-12-21
管理员
5
#
fwbook
发表于 2010-6-7 15:02
|
只看该作者
实际通常不会这样使用。因为这样不容易理解。
回复
引用
TOP
返回列表