您的位置:首页 > 编程语言 > C语言/C++

c语言用栈实现10进制转换为8进制

2017-04-15 21:26 851 查看
出处:http://ask.csdn.net/questions/378750
#include<stdio.h>#include<iostream>using namespace std;#define M 20typedef struct mystack{int a[M];int top;//top表示数组元素的位置}ST;int isfull(ST *t);int isempty(ST *t);int pop(ST *t,int *data);int push(ST *t,int data);void transfer(int number);int main(){int x;printf("请输入一个十进制数:\n");scanf("%d",&x);if(x!=0)//第一部分{transfer(x);}return 0;}int isfull(ST *t)//判断栈是否满{if(t->top==M-1)return 1;else return 0;}int isempty(ST *t)//判空{if(t->top)return 0; //第三部分else return 1;}int push(ST *t,int data)//入栈操作{if(!isfull(t)){(t->top)++;t->a[t->top]=data;return 1;}else return 0;}int pop(ST *t,int *data)//*data表示出栈元素{if(!isempty(t)){*data=t->a[t->top];(t->top)--;//栈长度减一return 1;}else return 0;}void transfer(int number){ST t;int r;t.top=0;//第二部分while(number)//number 为非零时,持续求余{r=number%8;push(&t,r);//入栈number=number/8;//整除运算}while(!isempty(&t)){pop(&t,&r);//出栈printf("%d",r);}printf("\n");}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言