C语言里if((i=!i)!
C语言里if((i=!i)!void f31 (stack *S){Queue Q;Stack T;int i=0;InitQueue(&Q);InitStack(&T);While(!StackEmpty(S))if((i=!i)!=0) Push(&T,Pop(S));else EnQueue(&Q,Pop(S));.其中i指什么?书上说是S元素出栈,奇数入栈T,偶数入队Q,谢谢你的回答,但是i是指的什么啊?记录哪个的?
最佳回答
if((i=!i)!=0)意思是:首先将i取非(计算机以二进制表示,其中0通常代表假,1代表真),然后赋值给i,再判断是否等于0,若不等于0则执行Push(&T,Pop(S));否则执行EnQueue(&Q,Pop(S));因为i的初值是0故第一步判断后执行Push(&T,Pop(S))第二步执行EnQueue(&Q,Pop(S));所以书上说的正确。仅供参考!不好意思先前的回答有点问题,现在改了。这里的i其实没有记录数据,它的作用是:第一次循环:其初值0,然后取非变为1;然后if语句判断是否为零。(显然第一次)第二次时i的值已经变为1了,然后取非变为0,然后判断······一直到循环结束。
最新回答共有2条回答
-
2026-04-01 08:41:57温暖的水杯
回复if((i=!i)!=0)意思是:首先将i取非(计算机以二进制表示,其中0通常代表假,1代表真),然后赋值给i,再判断是否等于0,若不等于0则执行Push(&T,Pop(S));否则执行EnQueue(&Q,Pop(S));因为i的初值是0故第一步判断后执行Push(&T,Pop(S))第二步执行EnQueue(&Q,Pop(S));所以书上说的正确。仅供参考!不好意思先前的回答有点问题,现在改了。这里的i其实没有记录数据,它的作用是:第一次循环:其初值0,然后取非变为1;然后if语句判断是否为零。(显然第一次)第二次时i的值已经变为1了,然后取非变为0,然后判断······一直到循环结束。
热门文章
- 康达学院专转本五年制
- 高考一个考场分ab卷吗
- not only but also用法
- 某物体做自由落体运动,从释放开始计时,则物体在前2s内的平均速度为______m/s,物体下落2m时的速度大小为______m/s.
- 三角函数公式大全表格
- 地理中考必背知识点2022
- 2013-2014学年小学六年级科学上学期期末考试试卷及答案
- 人教版2014-2015学年小学五年级英语第二学期期中教学质量检测试卷及答案
- 【Linux驱动开发】设备树详解(二)设备树语法详解
- 别跟客户扯细节
- 在别的城市买房子能落户吗
- 卖房前要把装修贷还完吗
- 高中政治教学提高教学效果的方法探究
- “互联网+”背景下的初中英语课堂教学改革与创新策略研究
- 2022年终止合同范本
- 租房合同范本范文
- 如何挑选土豆
- 如何挑选土鸡
