问题描述
- 新人问一个c语言问题,拜托各位帮我解释一下
- 要求找出一个x,使其除以5余1,除以6余5,除以7余4,除以11余10
我写的代码
int main()
{
int x=0;
do{
x++;
}while(x%5!=1&&x%6!=5&&x%7!=4&&x%11!=10);
printf(""%d""x);return 0;
}
问题出现在while括号里面条件,参考答案是while(!(x%5==1&&x%6==5&&x%7==4&&x%11==10));
请问我写的while括号里的条件错在哪里?
解决方案
while(!(x%5==1&&x%6==5&&x%7==4&&x%11==10))等价于
while(x%5!=1||x%6!=5||x%7!=4||x%11!=10))
解决方案三:
把条件改为(x%5==1&&x%6==5&&x%7==4&&x%11==10)啊。
解决方案四:
x%5==1&&x%6==5&&x%7==4&&x%11==10
解决方案五:
去看看离散数学中的知识
解决方案六:
运算符的优先级的问题,while((x%5!=1)&&(x%6!=5)&&(x%7!=4)&&(x%11!=10)); &&他是有短路的作用的
解决方案七:
你把所有且取非就是所有或啊,所有且跟所有或组成一个全集。
解决方案八:
兄弟,”=“是赋值运算符啊,“==”才是我们传统数学中说的等号
解决方案九:
while(x%5!=1&&x%6!=5&&x%7!=4&&x%11!=10);,
你这句话的意思是,
x%5!=1-----当X除以5的余数不为1时
x%6!=5-----当X除以6的余数不为5时
x%7!=4-----当X除以7的余数不为4时
x%11!=10-----当X除以11的余数不为10时
,你用的是“!=”即不等于,此处的逻辑判断应该是等于“==”。
也就是
把条件改为(x%5==1&&x%6==5&&x%7==4&&x%11==10)啊。
时间: 2024-11-17 05:55:53