#include<stdio.h> #define Stack_Size 50//定义数组大小 typedef int StackElemType;//重命名 int 类型(以下操作数为int型,通过该语句可以随意改变所要操作的数据类型) typedef struct { StackElemType elem[Stack_Size];//顺序栈存储空间 int top;//栈顶元素下标,第i个元素下标为i - 1 }SeqStack; #define FALSE 0 #define TRUE 1 //初始化栈 void InitStack(SeqStack *S) { S -> top = -1; } //进栈 int Push(SeqStack * S, StackElemType x) { if(S -> top == Stack_Size - 1) return FALSE; S -> top ++; S -> elem[S -> top] = x; return TRUE; } //出栈 int Pop(SeqStack * S, StackElemType * x) { if(S -> top == -1) return FALSE; else{ *x = S -> elem[S -> top]; S -> top --; return TRUE; } } //读取栈顶元素 int Gettop(SeqStack *S, StackElemType *x) { if(S -> top == -1) return FALSE; else { *x = S -> elem[S -> top]; return TRUE; } } int main() { int t; int m; int e; scanf("%d",&t); SeqStack S; while(t --) { InitStack(&S); scanf("%d",&m); do { Push(&S,m % 2); m /= 2; }while(m !=0); while(Pop(&S,&e)) printf("%d",e); printf("\n"); } return 0; }