问一下
#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
&&的意思是,左右两边必须同时成立。
!a||!b||!c表示,a,b,c三个中至少有一个等于0。
x||y||z表示,x,y,z三个中至少有一个不等于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)
本回答被提问者采纳