C语言中y=!a+b<c&&(b!=c)和z=c/b+((float)a/b&&(float)(a/c));什么意思

整个是
#include<stdio.h>
#include<conio.h>
main()
{
int a=3,b=4,c=5,x,y,z;
x=c,b,a;
y=!a+b<c&&(b!=c);
z=c/b+((float)a/b&&(float)(a/c));
printf("\n x=%d,y=%d,z=%d",x,y,z);
x=a||b--;
y=a-3&&c--;
z=a-3&&b;
printf("\n%d,%d,%d,%d,%d",a,b,c,x,y,z);
getch();
}

y=!a+b<c&&(b!=c)
首先判断a+b<c 是否为真,此处为假,返回0,再判断b!=c为真返回1,然后!逻辑非运算开始判断!a+b<c 为真,返回1 ,然后逻辑与运算符开始判断 1 && 1 ,返回为真,所以此处y为1;

z=c/b+((float)a/b&&(float)(a/c));
这句话就很好理解了,首先运算((float)a/b 部分,返回一个小于1的小数,为真,返回1,
(float)(a/c)返回0值,所以 1&&0 返回0,z=c/b+0;c/b为真,及因为b!=0,c可以除以b,返回真,即为1,所以最后z=1+0=1.
温馨提示:答案为网友推荐,仅供参考