C语言里if((i=!i)!
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/25 21:24:44
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是指的什么啊?记录哪个的?
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,然后判断······
一直到循环结束.
首先将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,然后判断······
一直到循环结束.
C语言里if((i=!i)!
c语言中 if(n%i==0) break
C语言中”if(!(x%i))”是什么意思?
c语言中if(i-j)d=i-j;其中if(i-j)是什么含义?
C语言if(i==1||i==3)continue;
C语言中if(i/k==1||i%k!=0)
C语言里main() {int i,t; t=1; i=2; while(i
C语言语句“switch(--d%4)”“if(!(i%2))”中,
C语言if(a[i]%2)怎么讲?
C语言,for(i=0;i
c语言中 p = i - i&(i^(i-1))
C语言中,if(strcmp(stu[i].code,s1)==0)是什么意思?