马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
利用栈举行数制转换:
十进制转换八进制:先将十进制数除以八得到余数,余数入栈,然后将得到的商继承除以八,直到商为零
- #include <stdio.h>
- #include <stdlib.h>
- #define MAXSIZE 100
- //数制转换
- //定义链表节点结构体
- typedef struct{
- int data[MAXSIZE];
- int top;
- }Stack;
- //初始化栈
- void InitStack(Stack *S){
- S->top = -1; //栈为空
- }
- //判断栈是否为空
- int StackEmpty(Stack *S){
- return S->top == -1;
- }
- //入栈
- void Push(Stack *S,int value){
- if(S->top<MAXSIZE-1){
- S->data[++(S->top)] = value;
- }else{
- printf("Stack overflow!\n");
- }
- }
- //出栈
- void Pop(Stack *S,int *value){
- if(!StackEmpty(S)){
- *value = S->data[(S->top)--];
- }else{
- printf("Stack underflow!\n");
- }
- }
- void conversation(){
- Stack S; //定义栈变量
- int N,e;
-
- //对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数
- InitStack(&S); //构造空栈
-
- scanf("%d",&N);
-
- if(N == 0){
- printf("0\n");
- return;
- }
-
- //十进制转八进制
- while(N){
- Push(&S,N % 8); //余数入栈
- N = N / 8;
- }
-
- //输出八进制数
- while(!StackEmpty(&S)){
- Pop(&S,&e);
- printf("%d",e);
- }
- printf("\n");
- } //conversation
- int main() {
- conversation();
- return 0;
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |