关于整型变量的计算……菜鸟级……

来源:百度知道 编辑:UC知道 时间:2024/05/27 09:31:25
1.
计算a=25/3%3 a=2
那么 是先算25/3 得8 8再对3求余了
我分析得对么???
2.
计算
int b=7; float a=2.5,c=4.7;
求a+(int)(b/3*(int)(a+c)/2)%4 结果是5.500000

怎么算啊……
(int)(a+c)/2得几啊???

b/3*(int)(a+c)/2又得几啊???
帮帮忙吧……
给加分~~~

1.分析对,因为算数运算符的结合方向“自左向右”

2.先算(int)(a+c)=7,后得到 a+(int)(b/3*7/2)%4

b/3*7/2=7

a+(int)(7)%4=2.5+7%4=5.5

优先级:自上到下由高到低
|(){}〔〕.(结构体成员运算符)->(指向结构体成员运算符)
|单目运算符 !(非)--(自减)++(自加)~(按位取反)
|算术运算符+ - * % /
|关系运算符< > >= <= ==
|&&和||
|赋值运算符 =
|逗号运算符 (表达式1),(表达式2),(表达式3)...
还有就是左右运算顺序
a+b +为双目运算符, (a>b)?a:b 中? :为3目运算符. !a 为单目运算符.
单目,三目运算符都为自右向左结合,双目运算符除赋值运算符都为自左向右结合.

这个你参考下。
chenB的分析不错

第一个应该是对的 除应该比取余优先运算
int(a+c)=7 ;
不过我觉得应该先算3*(int)(a+b)=21;b/21=0;0/2=0;(int)(0)=0;0%4=0;答案是2.5啊 优先顺序应该是* / % 遵循从左到右的原则
a+c=7.2;用int取整后是7 先乘3 再被b除最后除以2

个人认为的 不知有没有错

你去看优先级表
书的后面有
先算高优的