您好,登錄后才能下訂單哦!
這篇文章主要介紹了怎么在C語言項目中利用棧將十進制轉換為二進制,此處通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考價值,需要的朋友可以參考下:
具體如下:
#include<stdio.h> #include<malloc.h> #include<math.h> #include<string.h> #include "process.h" #define SIZE 100 #define STACKINCREMENT 10 #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 typedef int Status; typedef struct { int a; } SElemType; typedef struct { SElemType *base; SElemType *top; int stacksize; } SqStack; SqStack S; //定義全局變量 Status InitStack(SqStack *S) { S->base=(SElemType *)malloc(SIZE*sizeof(SElemType)); if(!S->base) exit(OVERFLOW); S->top=S->base; S->stacksize=SIZE; return OK; } Status Push(SqStack *S,SElemType e) { if(S->top-S->base>=S->stacksize) { S->base=(SElemType *)malloc((S->stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!S->base) exit(OVERFLOW); S->top=S->base+S->stacksize; S->stacksize+=STACKINCREMENT; } *S->top++=e; //printf("%dwww\n",*--S->top); return OK; } Status Stackempty(SqStack *S) { if(S->top==S->base) return TRUE; else return FALSE; } Status Pop(SqStack *S,SElemType *e) { if(S->top==S->base) return ERROR; *e=*--S->top; return OK; } Status DtoBTrans(int N,SqStack *S) { SElemType e; while(N) { e.a=N%2; Push(S,e); N=N/2; } while(!Stackempty(S)) { Pop(S,&e); printf("%d",e); } return OK; } void main() { int x; InitStack(&S); printf("請輸入十進制數:"); scanf("%d",&x); DtoBTrans(x,&S); }
運行結果:
到此這篇關于怎么在C語言項目中利用棧將十進制轉換為二進制的文章就介紹到這了,更多相關內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。