순서 창고로 10진 2진법 (c 언어) 구현

1179 단어 진수 변환창고
#include 
#include 

#define M 100
typedef int ElemType;
typedef struct
{
	ElemType data[M];
	int top;
}Stack;

//    
void InitStack(Stack *s)
{
	s->top = -1;
}
int Push(Stack *s,ElemType e)
{
	if (s->top == M-1)
	{
		printf("  
"); return 0; } s->top++; s->data[s->top]=e; return 1; } // int Empty(Stack *s) { return(s->top==-1); } // int Pop(Stack *s,ElemType *e) { if(Empty(s)) { printf("
Stack is free"); return 0; } *e=s->data[s->top]; s->top--; return 1; } void Conversion(int N) { int e; Stack *s = (Stack *)malloc(sizeof(Stack)); InitStack(s); while(N) { Push(s,N%2); N=N/2; } while(!Empty(s)) { Pop(s,&e); printf("%d",e); } } int main() { int n,m; while(1) { printf("1: ,2:
"); scanf("%d",&n); switch(n) { case 1: printf(" : "); scanf("%d",&m); printf(" : "); Conversion(m); printf("
"); break; case 2: exit(0); default: printf("error
"); } } }

좋은 웹페이지 즐겨찾기