设为首页 加入收藏

TOP

栈和线性表的简单应用-数制转换(二)
2019-01-06 14:06:51 】 浏览:180
Tags:线性 简单 应用 转换
其等值的N进制数
10 void Conversion(int N) { 11 double x, decimal; 12 int integer; 13 scanf("%lf", &x); 14 integer =(int)floor(x); //整数部分 15 decimal = x - integer; //小数部分 16 //处理整数部分 17 18 StackType *e; 19 SqStack *ps, s; 20 ps = &s; 21 e = (StackType*)malloc(sizeof(StackType)); //为指针e分配内存地址 22 InitStack(ps); //初始化栈 23 while (integer) //当integer不等于0 24 { 25 Push(ps, integer % N); //压入integer 除以N的余数 26 integer = integer / N; 27 } 28 while (EmptyStack(ps) != OK) //当栈不为空 29 { 30 Pop(ps, e); //弹出的栈顶元素,并让e指向其地址 31 printf("%d ", *e); // 输出e 每一个数码间用空格隔开 32 } 33 //处理小数部分 34 if (decimal) { //小数部分不为0 才处理 35 SqList *L; 36 ElemType m; 37 L = (SqList*)malloc(sizeof(SqList)); //为指针L分配内存地址 38 InitList(L); //初始化顺序表 39 while (decimal) //当decimal不为0 40 { 41 m = (ElemType)floor(decimal*N); 42 BackInsert(L, m); //插入decimal*N的整数 43 decimal = decimal * N - m; 44 } 45 printf(". "); 46 PrintList(L); //每一个数码之间用空格隔开 47 } 48 } 49 int main() { 50 int N; 51 printf("请输入目标进制:"); 52 scanf("%d", &N); 53 printf("将十进制数n转换为%d进制数,请输入:n(>=0)=", N); 54 Conversion(N); 55 return 0; 56 57 }

   合理的使用数据结构可以使代码跟易读,易懂。栈的引入

简化了程序设计的问题,划分了不同的关注层次,逻辑思路清晰。

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇逐步搭建vs2015的API自带认证调用.. 下一篇约瑟夫环

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目