为什么我的for循环在每一次迭代中都做了一些事情

时间:2017-11-26 18:48:02

标签: c

为什么这个for循环在每次迭代中运行代码? 为了使我的代码正常运行,我不得不将它应该进行的迭代次数加倍。

#include <stdio.h>
int main(){
int t,rear,id,n,b;
char pt;
int *stack;
scanf("%d",&t);
while(t--){
    rear = 0;
    b=0;
    scanf("%d%d",&n,&id);
    stack = (int *) malloc(n*sizeof(int));
    stack[rear]=id;
    for(int i=2*n;i>0;i--){
        scanf("%c",&pt);
        printf("character read at %d %c\n",i,pt);
        if(pt=='B'){
            if(b==1){
                ++rear;
                b=0;
            }
            else{
                --rear;
                b=1;
            }
        }
        else if(pt=='P'){
            b=0;
            scanf("%d",&id);
            ++rear;
            stack[rear]=id;
        }
    }
    printf("Player %d\n",stack[rear]);

}
return 0;
}

0 个答案:

没有答案