存储里保存的3组密码:1:mima_x[k] 2:mima_y[k] 3: mima_z[k]
现在键盘输入的数据: a[k]
原意是要求判断键盘输入的数据a[k]是否对的上存储里的3组密码中的任意一组,应该怎么做?我下面程序怎么不对,比如第1组密码是1234,我键盘输入1234可以解锁,但是输入123也可以解锁,输入12也可以解锁,输入1的时候不能解锁,问题出自哪???只用一组的时候是正确的,就是后面被我注释掉的,只用一组的时候必须正确输入1234才可以解锁,少了或多了或错了一个都不行。为什么用2组不行,3组也不行?难道是“或”运算符不可以这样判断吗?(jm就是解锁成功标记,2组或3组程序时,数据不对也会led7=0,如果不对不是应该执行led1=0吗?)
for(k=0;k<11;k++) { if((a[k]==mima_x[k])||(a[k]==mima_y[k])||(a[k]==mima_z[k])){jm=1;continue;}//if((a[k]==mima_x[k])){jm=1;continue;} if((a[k]!=mima_x[k])||(a[k]!=mima_y[k])||(a[k]!=mima_z[k]))//if((a[k]!=mima_x[k])) { //如果键盘输入数据对不上存储里的3组任意一组,就执行这里
led1=0;jm=0;
goto start; } } if(jm==1) { //如果键盘输入数据能对上存储里的3组任意一组,就执行这里 led7=0;jm=0; }
谁能帮我分析一下,假如1:mima_x[k]={1,2,3,4} 2:mima_y[k]={5,6,7,8} 3: mima_z[k]={8,8,8,8}。然后这时键盘输入数据 a[k]={1,2,3}的时候上面程序结果是什么样的吗?