作业帮 > 综合 > 作业

若有定义:double a=22;int i=0,k=18;为什么(i=a%11)是不符合C语言规定的赋值语句.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 17:41:35
若有定义:double a=22;int i=0,k=18;为什么(i=a%11)是不符合C语言规定的赋值语句.
因为取余运算符(%)是对整形变量(或常量)取余数,而你的变量a是double型的,所以编译肯定会报错的.而我们知道整形可以被自动转换为float或者double,但是反过来是不行的,所以你要是想用上面的语句的话,需要加强制类型转换,即:i=(int)a%11.