{
for(i1=0;i1 if(sz[i+1]==ccu[i1])//将变量赋值并给P1 p1=icu[i1]; if(sz[i+1]==-2)//如果是前运算结果的0,则P1等于0 p1=0; if(p1==-1)//如果是数字,直接给P1 p1=sz[i+1]; dt[j+2]=!p1;//非运算 sz[i]=j+2; j++; p1=0; for(i1=i+1;i1 sz[i1]=sz[i1+1];//将后续式子前移一项 } p1=-1; j1=j; for(i=0;i for(i1=0;i1 if(sz[i-1]==ccu[i1])//将变量赋值并给P1 p1=icu[i1]; if(sz[i+1]==ccu[i1])//将变量赋值并给P2 p2=icu[i1]; } for(i2=2;i2 if(sz[i-1]==i2) //如果为前计算结果,将结果赋值并给P1 p1=dt[i2]; if(sz[i+1]==i2) //如果为前计算结果,将结果赋值并给P2 p2=dt[i2]; } if(sz[i-1]==-2)//如果是前运算结果的0,则P1等于0 p1=0; if(sz[i+1]==-2)//如果是前运算结果的0,则P2等于0 p2=0; if(p1==-1) //如果是数字,直接给P1 p1=(int)(sz[i-1]); if(p2==-1)//如果是数字,直接给P2 p2=(int)(sz[i+1]); dt[j+2]=p1 && p2;//与运算 sz[i-1]=j+2; - 10 - j++; j2++; p1=-1; p2=-1; for(i1=i;i1 for(i=0;i for(i1=0;i1 if(sz[i-1]==ccu[i1])//将变量赋值并给P1 p1=icu[i1]; if(sz[i+1]==ccu[i1])//将变量赋值并给P2 p2=icu[i1]; } for(i2=2;i2 if(sz[i-1]==i2) //如果为前计算结果,将结果赋值并给P1 p1=dt[i2]; if(sz[i+1]==i2)//如果为前计算结果,将结果赋值并给P2 p2=dt[i2]; } if(sz[i-1]==-2)//如果是前运算结果的0,则P1等于0 p1=0; if(sz[i+1]==-2)//如果是前运算结果的0,则P2等于0 p2=0; if(p1==-1)//如果是数字,直接给P1 p1=sz[i-1]; if(p2==-1)//如果是数字,直接给P2 p2=sz[i+1]; dt[j+2]=p1 || p2;//或运算 sz[i-1]=j+2; j++; j3++; p1=-1; p2=-1; for(i1=i;i1 for(i=0;i - 11 - if(sz[i]=='^') { for(i1=0;i1 if(sz[i-1]==ccu[i1])//将变量赋值并给P1 p1=icu[i1]; if(sz[i+1]==ccu[i1])//将变量赋值并给P2 p2=icu[i1]; } for(i2=2;i2 if(sz[i-1]==i2) //如果为前计算结果,将结果赋值并给P1 p1=dt[i2]; if(sz[i+1]==i2) //如果为前计算结果,将结果赋值并给P2 p2=dt[i2]; } if(sz[i-1]==-2)//如果是前运算结果的0,则P1等于0 p1=0; if(sz[i+1]==-2)//如果是前运算结果的0,则P2等于0 p2=0; if(p1==-1)//如果是数字,直接给P1 p1=sz[i-1]; if(p2==-1)//如果是数字,直接给P2 p2=sz[i+1]; dt[j+2]=!p1 || p2;//蕴含运算 sz[i-1]=j+2; j++; j4++; p1=-1; p2=-1; for(i1=i;i1 for(i=0;i for(i1=0;i1 if(sz[i-1]==ccu[i1])//将变量赋值并给P1 p1=icu[i1]; if(sz[i+1]==ccu[i1])//将变量赋值并给P2 p2=icu[i1]; } - 12 - for(i2=2;i2 if(sz[i-1]==i2) //如果为前计算结果,将结果赋值并给P1 p1=dt[i2]; if(sz[i+1]==i2) //如果为前计算结果,将结果赋值并给P2 p2=dt[i2]; } if(sz[i-1]==-2)//如果是前运算结果的0,则P1等于0 p1=0; if(sz[i+1]==-2)//如果是前运算结果的0,则P2等于0 p2=0; if(p1==-1)//如果是数字,直接给P1 p1=sz[i-1]; if(p2==-1)//如果是数字,直接给P2 p2=sz[i+1]; dt[j+2]=(!p1 || p2)&&(!p2 || p1);//等值运算 sz[i-1]=j+2; j++; j5++; p1=-1; p2=-1; for(i1=i;i1 sz[i1]=sz[i1+2]; i--; } return dt[j+1];//返回结果 } } 六.实验结果 结果分析: 这道题第一部分比较简单,主要是读取值并进行计算,同时要注意输入的值要是0或1,如果不是,则进行错误提示,并进行重新输入。 - 13 - 欢迎界面 非运算 - 14 -