📄 习题1-数制转换(1).c
字号:
#include "datastru.h"
#include <stdio.h>
void initstack(SEQSTACK *s)
{/*顺序栈初始化*/
s->top = 0;
}
DATATYPE1 gettop(SEQSTACK *s)
{/*返回栈顶元素*/
DATATYPE1 x;
if(s->top == 0)
{printf("栈空\n");
x = 0;}
else
x = (s->data)[s->top];
return x;
}
int push(SEQSTACK *s, DATATYPE1 x)
{/*元素x入栈*/
if(s->top == MAXSIZE - 1)
{ printf("栈满\n");
return 0;}
else
{ s->top ++;
(s->data)[s->top] = x;
return 1;}
}
DATATYPE1 pop(SEQSTACK *s)
{/*返回栈顶元素并删除栈顶元素*/
DATATYPE1 x;
if(s->top == 0)
{ printf("栈空\n");
x = 0;}
else
{ x = (s->data)[s->top];
s->top--;}
return x;
}
main( )
{
SEQSTACK stack, *s;
int n;
s = &stack;
initstack(s);
n = 0;
printf("输入一非负整数(十进制) :");
scanf("%d",&n);
push(s,'#');
while(n != 0)
{push(s, n % 8); /* %为求余数运算符, 余数入栈*/
n = n / 8;} /* /为求整数商运算符,商不为零,继续运行*/
printf("\n\n对应的八进制数为 :");
while(gettop(s) != '#')
printf("%d",pop(s));
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -