看看这个流程图怎么弄?

来源:百度知道 编辑:UC知道 时间:2024/05/27 04:50:36
下面是程序,可以把一个10进制数转换成任意进制
急求流程图,传统的就行,不必是N-S的。
本人将万分感谢!

#define STACK_INIT_SIZE 100 //定义栈的空间;
#define STACKINCREMENT 10
#define OK 1 //定义成功状态;
#define ERROR 0 //定义失败状态;
#define OVERFLOW -2 //定义溢出状态;
typedef int Status; //定义状态字;
typedef int SElemType; //定义元素类型;

typedef struct //定义构造栈所使用的结构体;
{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;

SqStack S; //定义结构体的一个实例;
int iN,iM,e; //定义输入十进制数、进制单位;
char c[]="0123465789ABCDEF";//待打印的字符(由此可见该程序最多可转换十六进制以内的数据);

Status InitStack(SqStack *S) //栈初始化;
{
S->base=(SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));//分配内存空间,并将栈底地址赋予base指针;
if(!S->base) exit(OVERFLOW); //如果分配失败,返回溢出值;
S->top=S->base; //将栈底地址赋予栈顶(此时构造一个空栈);
S->stacksize=STACK_INIT_SIZE;//初始化栈可容纳的元素个数;
return OK; //返回函数成功值;
}

Status Push(SqStack *S,SElemType e) //压栈函数;
{
if(S-

我们要将一个十进制转换为二进制
要怎么转呢?
除二取余,然后倒着输出就是转换后的二进制了。
显然这个程序的流程就是

获得输入的十进制数iN
获得要转换的进制数iM
判断表达式iN的值是否为0(为0不执行)
   _______________________
  | 循环体:                |
  |    取iN%iM的值入栈      |
  |    iN=iN/iM             |
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
判断栈是否为空(为空不执行)
   ________________________
  |循环体:                |
  |    出栈          |
  |    输出出栈的值       |
     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
按任意键退出程序