IF 语句未通过

IF statement doesn't go through

本文关键字:语句 IF      更新时间:2023-10-16

如果我输入 3 5 3 1,它不会通过 if 语句,我真的找不到为什么,我认为应该,因为这些数字除了 3 和 3 之外不相等。

cin>>x1 >> y1>>x2>>y2;
if(x1<=1000000 && x1>0 && x2<=1000000 && x2>0 && y1<=1000000 && y1>0 && 
y1<=1000000 && y1>0){
xp2=x2;
yp2=y2;
xp1=x1;
yp1=y1;
cout<<">>"<<xp1<<" "<<yp1<<endl;
cout<<">>"<<xp2<<" "<<yp2<<endl;
cout<<"----------"<<endl;
//TRIES TO FIND A SUB-TREE AND TELL THE DISTANCE BETWEEN X1,Y1 AND X2,Y2
if(xp1!=xp2 && yp1!=yp2){
while(xp1!=xp2 && yp1!=yp2 || xp1!=yp1){
    xp1=x1;
    yp1=y1;
    a2=0;
    while(xp1!=xp2 && yp1!=yp2 || xp1!=yp1){
        if(xp1<yp1|| xp1!=yp1){
            yp1-=xp1;
            a++;
        }else if(xp1>yp1|| xp1!=yp1){
            xp1-=yp1;
            a++;
        }cout<<">>"<<xp1<<" "<<yp1<<endl;
    }
    if(xp1!=xp2 && yp1!=yp2|| xp1!=yp1){
        if(xp2<yp2|| xp1!=yp1){
            yp2-=xp2;
            a2++;
        }else if(xp2>yp2|| xp1!=yp1){
            xp2-=yp2;
            a2++;
        }cout<<xp2<<" "<<yp2<<"<<"<<endl;
    }
cout<<"LOOP CHECK"<<endl;
}
cout<<"IF CHECK"<<endl;
}

>,3 5 3 1测试中的值

if(xp1!=XP2 && yp1!=yp2){

为 false,因为 XP1 和 XP2 值为 5,因此您什么都不做


正如我在评论中所说

if(x1<=1000000 && x1>0 && x2<=1000000 && x2>0 && y1<=1000000 && y1>0 &&
   y1<=1000000 && y1>0){

必须是

if(x1<=1000000 && x1>0 && x2<=1000000 && x2>0 && y1<=1000000 && y1>0 &&
   y2<=1000000 && y2>0){`