第6周项目4 - 数制转换
来源:互联网 发布:淘宝怎么在百度推广 编辑:程序博客网 时间:2024/05/01 03:36
/*Copyright (c) 2015, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:H1.cpp * 作者:辛志勐 * 完成日期:2015年10月12日 * 版本号:vc6.0 * 问题描述:把十进制的整数转换为任一进制数输出。请利用栈设计算法,并实现程序。* 输入描述:无 * 程序输出:栈表的结果 */#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];
int top; //栈指针
} SqStack; //顺序栈类型定义
void InitStack(SqStack *&s); //初始化栈
void DestroyStack(SqStack *&s); //销毁栈
bool StackEmpty(SqStack *s); //栈是否为空
int StackLength(SqStack *s); //返回栈中元素个数——栈长度
bool Push(SqStack *&s,ElemType e); //入栈
bool Pop(SqStack *&s,ElemType &e); //出栈
bool GetTop(SqStack *s,ElemType &e); //取栈顶数据元素
void DispStack(SqStack *s); //输出栈
void InitStack(SqStack *&s)
{
s=(SqStack *)malloc(sizeof(SqStack));
s->top=-1;
}
void DestroyStack(SqStack *&s)
{
free(s);
}
int StackLength(SqStack *s) //返回栈中元素个数——栈长度
{
return(s->top+1);
}
bool StackEmpty(SqStack *s)
{
return(s->top==-1);
}
bool Push(SqStack *&s,ElemType e)
{
if (s->top==MaxSize-1) //栈满的情况,即栈上溢出
return false;
s->top++;
s->data[s->top]=e;
return true;
}
bool Pop(SqStack *&s,ElemType &e)
{
if (s->top==-1) //栈为空的情况,即栈下溢出
return false;
e=s->data[s->top];
s->top--;
return true;
}
bool GetTop(SqStack *s,ElemType &e)
{
if (s->top==-1) //栈为空的情况,即栈下溢出
return false;
e=s->data[s->top];
return true;
}
void DispStack(SqStack *s) //输出栈
{
int i;
for (i=s->top;i>=0;i--)
printf("%c ",s->data[i]);
printf("\n");
}
void MultiBaseOutput (int number,int base)
{
//假设number是非负的十进制整数,输出等值的base进制数
int i;
SqStack *S;
InitStack(S);
while(number) //从右向左产生base进制的各位数字,并将其进栈
{
Push(S,number%base); //将将余数进栈
number=number/base;
}
while(!StackEmpty(S)) //栈非空时退栈输出
{
Pop(S, i);
printf("%d",i);
}
}
int main()
{
MultiBaseOutput(10, 2);
return 0;
}
知识点总结:运用栈与求余相结合从而完成十进制的转换。
学习心得:学习需要一定的尝试,不熟悉的地方可以稍做练习。
0 0
- 第6周项目4-数制转换
- 第6周项目4-数制转换
- 第6周项目4数制转换
- 第6周项目4--数制转换
- 第6周 项目4- 数制转换.
- 【第6周 项目4 - 数制转换】
- 第6周项目4 - 数制转换
- 第6周 项目4 - 数制转换
- 第6周项目4-数制转换
- 第6周 项目4-数制转换
- 第6周项目4--数制转换
- 第6周项目4 数制转换
- 第6周项目4 数制转换
- 第6周项目4--数制转换
- 第5周项目4--数制转换
- 第5周 项目4-数制转换
- 第5周项目4 -数制转换
- 第5周项目4-数制转换
- (第四周项目4)建设双链表算法库
- IOS网络编程简单介绍
- jquery filter() find()
- Linux上怎么定时执行C++程序
- - (void)applicationWillTerminate:(UIApplication *)application;为什么不会被调用。
- 第6周项目4 - 数制转换
- WBS介绍
- 随机存取对象RandomAccessFile
- 黑马程序员——Java基础--------网络编程
- 浅谈Radius协议
- tableView 上拉刷新/下拉加载
- 多项式求和
- xtrabackup 详解
- 最值得阅读学习的 10 个 C 语言开源项目代码