还有,看一下这个题结果是啥:
double x=5.16894:
printf("%f\n",(int)(x*1000+0.5) /(double)1000)):
k=int(a+b)是合法的赋值表达式吗?int不是用来定义变量类型的吗?难道int还可以当作运算符来用吗?
答案:6 悬赏:30
解决时间 2021-03-14 02:50
- 提问者网友:痞子房西
- 2021-03-13 17:48
最佳答案
- 二级知识专家网友:眠于流年
- 2021-03-13 19:18
在C语言中, k=int(a+b)是非法的. 要强制转换 需要写成
k=(int)(a+b)
表示将a+b的结果强制转换为int
(int)(x*1000+0.5) /(double)1000)
=(int)(5.16894*1000+0.5)/1000.0
=(int)5169.44/1000.0
=5169/1000.0
=5.169
起到的效果是将x四舍五入到小数点后三位.
k=(int)(a+b)
表示将a+b的结果强制转换为int
(int)(x*1000+0.5) /(double)1000)
=(int)(5.16894*1000+0.5)/1000.0
=(int)5169.44/1000.0
=5169/1000.0
=5.169
起到的效果是将x四舍五入到小数点后三位.
全部回答
- 1楼网友:末路丶一枝花
- 2021-03-14 00:07
C中不合法,
C++中int(a)等价于(int)a。
- 2楼网友:而你却相形见绌
- 2021-03-14 00:00
int 作为运算符需要加括号,对于下面的一题,首先%f就告诉你最后结果的形式,所以你只需要计算出来,然后按要求写结果就行了。5.17
- 3楼网友:伤口狠精致
- 2021-03-13 22:26
在变量前面加(类型) 属于强制类型转换,也就是把你的表达式的值转换成这个类型后进行运算,不是运算符。
- 4楼网友:傲娇菇凉
- 2021-03-13 21:34
首先k=int(a+b)肯定是不合法的,合法的是k=(int)(a+b)。int可以用来定义变量类型,也可以作为强制转换类型的运算符,但是做为运算符时,需加括号,不然编译时是通不过的:例如:a是浮点型变量,把它强制转换为整形是:(int)a.给你个测试程序,该程序输出7.
# include
int main(void)
{
float a=5.32,b=2.4;
int c;
c=(int)(a+b);
printf("%d\n",c);
return 0;
}
- 5楼网友:都不是誰的誰
- 2021-03-13 20:08
k=int(a+b)是合法的赋值表达式吗?int不是用来定义变量类型的吗?难道int还可以当作运算符来用吗?
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯