(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 求表达式值

[复制链接]
查看11 | 回复5 | 2018-12-16 16:48:14 | 显示全部楼层 |阅读模式
(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5 求表达式值 我想知道float怎么取的值, int强制转换四舍五入吗? 最好说下计算过程不胜感激

回复

使用道具 举报

千问 | 2018-12-16 16:48:14 | 显示全部楼层
详细计算分析过程如下:1、在该表达式中,分别有以下几个运算符:圆括号、强制类型转换、除法、取余和加法。根据运算符的优先级,圆括号优先级最高,其次是强制类型转换,然后是除法“/”和取余“%”,最后是加法运算。因此,首先计算圆括号中的内容,由于a=2,b=3,表达式转化为:(float)5/2+(int)x%(int)y;2、进行运算类型强制转换,(float)5中是将int类型的值转为float类型,因此整数5转换为小数5.0,由于x=3.5,y=2.5,x、y均为小数,强制转换为int类型时,直接取其整数,舍
回复

使用道具 举报

千问 | 2018-12-16 16:48:14 | 显示全部楼层
对浮点数强制类型转换成INT型会直接截位,你可以认为是取整也就是(int)x 为3 (int)y为2 %是求余数 所以 3%2是1(a+b)/2转成float是2.5所以是2.5+1=3.5
回复

使用道具 举报

千问 | 2018-12-16 16:48:14 | 显示全部楼层
计算过程:a+b=5(float)5 5.05.0/2
2.5(int)x 3(int)y 2%取余 1最后+2.5+1= 3.5
回复

使用道具 举报

千问 | 2018-12-16 16:48:14 | 显示全部楼层
(float)(a+b)/2=2.5(int)x%(int)y=1最后结果为 3.5,因为一个int与一个float类型的数相加结果会自动转化为float类型
回复

使用道具 举报

千问 | 2018-12-16 16:48:14 | 显示全部楼层
4和float之间什么运算符? 第一题3第二题3.5 你要详细步骤?呵呵#include#includeusing namespace std;int main(){ int a=2,b=3,x=3.5,y=2.5; cout<<x+a%3*(int)(x+y)%2&#47
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行