x||y||z c语言 逻辑运算符

问一下
#include <stdio.h>
int main()
{
int a,b,c,x,y,z,m;
m=0;
do
{
scanf("%d %d %d",&a,&b,&c);
}while(!a||!b||!c);
for(x=-100;x<=100;x++)
for(y=-100;y<=100;y++)
for(z=-100;z<=100;z++)
if((a*x+b*y+c*z==0) && (x||y||z))
{
printf("%d %d %d\n",x,y,z);
m=1;
}
if(m==0)
{
printf("no solution\n");
}
return 0;
}
这段程序中 }while(!a||!b||!c);是什么意思?还有 if((a*x+b*y+c*z==0) && (x||y||z))什么意思??
就是不太懂逻辑运算符,求大神给稍微讲下QAQ

第1个回答  2013-11-11
||的意思就是,左右两边至少有一个条件成立。
&&的意思是,左右两边必须同时成立。
!a||!b||!c表示,a,b,c三个中至少有一个等于0。

x||y||z表示,x,y,z三个中至少有一个不等于0。
第2个回答  2013-11-11
!a||!b||!c 相当于 !(a&&b&&c)标示任何一个为0的时候。

(a*x+b*y+c*z==0) && (x||y||z) 标示满足表达式a*x+b*y+c*z==0并且x,y,z至少一个不为0.追问

任何一个为0,放在程序里意思是当abc中任一个为0的时候,程序终止?
而且是||和&&就是判断是不是0是么?是0为真,不是0是假,加上!后相反?

追答

0是假,其他是真。加上!取反。任何一个为0的时候重新输入。

追问

do{} while() 就是放在括号里的成立后,循环停止?

追答

放在括号里的满足条件(任何一个为0)的时候继续执行(输入a,b,c)

本回答被提问者采纳
第3个回答  2013-11-11
while(!a||!b||!c)表示当a, b, c中有一个不为0时,

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网