第六周项目4-数制转换

原创 2015年11月20日 08:48:14

Copyright (c) 2015,烟台大学计算机学院

All rights reserved,

文件名称:idea.cpp

作者:王阳

完成日期:2015年11月20日

#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);  //输出栈

#include <stdio.h>
#include <malloc.h>
#include "sqstack.h"

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");
}

#include <stdio.h>
#include "sqstack.h"

void MultiBaseOutput (int number,int base)
{
    //假设number是非负的十进制整数,输出等值的base进制数
    int i;
    SqStack *S;
    InitStack(S);
    while(number)   //从右向左产生base进制的各位数字,并将其进栈
    {
        Push(S,number%base); //将将余数进栈
        number/=base;
    }
    while(!StackEmpty(S))   //栈非空时退栈输出
    {
        Pop(S, i);
        printf("%d",i);
    }
}
int main()
{
    MultiBaseOutput(10, 2);
    return 0;
}

中国大学mooc编程题在线测试第四周

程序改错题目内容: 下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出 Input er...
  • login_first
  • login_first
  • 2016年11月23日 14:47
  • 1761

C# 四个字节十六进制数和单精度浮点数之间的相互转化

即是所谓的IEEE754标准,这也是大多数硬件存储浮点数的标准。单精度浮点数占4个字节,表示范围为:在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1....
  • kjlrzzyffmx
  • kjlrzzyffmx
  • 2015年10月11日 21:51
  • 9566

C++第17周项目4 数组用于进制转换

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565【项目4】数组用于进制转换:编一个程序,其中调用函数void tran(in...
  • sxhelijian
  • sxhelijian
  • 2013年12月21日 17:19
  • 2349

第六周实践项目4--数制转换

问题及代码: /* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第6周项目4--数...
  • TonyABu
  • TonyABu
  • 2015年10月12日 16:56
  • 397

第六周项目(4):数制转换

问题及代码: 头文件: /* *烟台大学计算机与控制工程学院 *作 者:杨宁 *完成日期:2015年10月7日 *问题描述:把十进制数转换为二至九之间的任意进制数输出。请利用栈设计算法,并实...
  • yn2333
  • yn2333
  • 2015年10月07日 18:20
  • 376

第六周—项目4 - 数制转换

问题及代码: /* *Copyright(c)2015,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:main.cpp *作者:程昂 *完成...
  • luguoca
  • luguoca
  • 2015年10月09日 08:53
  • 313

第六周上机实践项目4——数制转换

问题及代码: 测试函数:main.cpp,完成相关的测试工作; /* *Copyright(c)2015,烟台大学计算机与控制工程学院 *All rights reserv...
  • yxx455237674
  • yxx455237674
  • 2015年10月09日 09:14
  • 167

第六周 项目4-数制转换

/* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:项目4.cbp 作 者:孙钰坤 完成日期:2015...
  • s6201
  • s6201
  • 2015年10月16日 09:25
  • 229

第六周项目4--数制转换

/* * Copyright (c) 2015, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:test.cpp * 作者:王雪...
  • wwwxxjj
  • wwwxxjj
  • 2015年10月16日 08:45
  • 185

第六周数据结构实践——数制转换(栈)【项目4 - 数制转换】

/* 1. *Copyright(c)2015,烟台大学计算机学院 2. *All rights reserved 3. *文件名称:第六周数据结构实践——数制转换(栈)【项目4 - 数制转换】 ...
  • qingtingdianshui1
  • qingtingdianshui1
  • 2015年10月26日 18:55
  • 387
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第六周项目4-数制转换
举报原因:
原因补充:

(最多只允许输入30个字)