若float a=22;int i=0,k=18; i=a%11;符不符合c语言赋值语句
时间: 2023-08-14 15:02:48 浏览: 109
这条语句不符合C语言的赋值语句规定。
在这条语句中,变量a的类型是float,变量i的类型是int。在C语言中,%运算符只能用于整数类型,不能用于浮点数类型。因此,将一个浮点数类型的变量a对11取余并赋值给一个整数类型的变量i是不合法的。
如果想要将浮点数类型的变量a对11取余,并将结果赋值给一个浮点数类型的变量i,可以使用fmod()函数,例如:
```
float a = 22;
float i = fmod(a, 11);
```
需要注意的是,fmod()函数是在头文件<math.h>中定义的,使用时需要包含这个头文件。
相关问题
若float a=22;int i=0,k=18; k=!a;符不符合c语言赋值语句
这条语句符合C语言的赋值语句规定。
在这条语句中,变量a的类型是float,变量k的类型是int。首先,将变量a的逻辑非(即取反)的结果赋值给变量k。在C语言中,逻辑非运算符!用于对一个表达式取反,如果表达式的值为0,则!表达式的结果为1,否则结果为0。由于变量a的值为非0,因此!a的结果为0,将0赋值给变量k。
需要注意的是,逻辑非运算符!只能用于布尔类型或者整数类型。如果a的类型不是布尔类型或整数类型,那么需要先将a转换为布尔类型或整数类型,才能使用逻辑非运算符。在这个例子中,由于浮点数类型的变量a转换为整数类型之后,其值为22,非0,因此!a的结果为0。
阅读全文