进制转换
来源:互联网 发布:围棋软件知乎 编辑:程序博客网 时间:2024/06/05 16:16
#define STACK_INIT_SIZE 100#define STACKINCREMENT 10#define OVERFLOW -1#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#include "stdio.h"#include "malloc.h"#include "stdlib.h"typedef int status;typedef char SelemType;typedef struct{SelemType *base;SelemType *top;int stacksize;}SqStack;status InitStack(SqStack &S){S.base = (SelemType *)malloc(STACK_INIT_SIZE*sizeof(SelemType));if(!S.base) exit (OVERFLOW);S.top=S.base;S.stacksize = STACK_INIT_SIZE;return OK;}status Push(SqStack &S, SelemType e){if(S.top - S.base >= S.stacksize){S.base = (SelemType *)realloc(S.base, (S.stacksize + STACKINCREMENT)*sizeof(SelemType));if(!S.base)exit(OVERFLOW);S.top = S.base + S.stacksize;S.stacksize += STACKINCREMENT;}*S.top++=e;return OK;}status Pop(SqStack &S, SelemType &e){if(S.top == S.base)return ERROR;e=*--S.top;return OK;}status StackEmpty(SqStack S){if(S.top==S.base)return TRUE;else return FALSE;}void conversion(){SqStack S;int N, d, ys;SelemType x, e;InitStack(S);while(1){printf("请输入一个非负十进制数(按0结束):");scanf("%d", &N);if(N == 0)break;printf("请输入要转换的进制:");scanf("%d", &d);while(N){ys = N%d;if(ys <= 9) x = ys + '0';else x = ys - 10 + 'A';Push(S, x);N = N/d;}printf("转换所得%d进制数为:", d);while(!StackEmpty(S)){Pop(S, e);printf("%c", e);}printf("\n");}}void main(){conversion();}
阅读全文
0 0
- 进制转换,类型转换
- 进制转换(进制转换)
- 进制转换-----十进制转换成二进制
- 进制的转换,八进制转换十六进制
- 进制转换,运算符,类型转换,
- 十进制转换2-9进制转换
- 进制转换
- 无限进制转换
- 进制转换
- 进制转换
- 进制转换
- 【整理】进制转换
- 进制转换
- 七、进制转换
- 进制转换
- 进制转换
- 进制转换
- NotesScript 进制转换
- Android 获取EditText里的内容
- Java transient关键字使用总结
- mybatis 批量插入自增主键报错 BindingException:Parameter 'id' not found
- iOS RSA密钥的生成与转换
- C++的引用
- 进制转换
- jq判断scroll是否到底部
- unity profiler深入学习6:rendering profiler
- kmp字符串匹配
- 类的初始化顺序
- JavaWeb学习篇之EL表达式
- URAL
- 字符串中数字子串的求和
- easystruts-1.0.2增加拦截器抽象类,Session处理