实验5-基本操作及十进制转二进制
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 20
typedef int ElemType;
typedef struct
{
ElemType a[MAXSIZE];
int top;
}SqStack;
SqStack s1,s2;
int i=0;
void init_s(SqStack *s);
void out_s(SqStack *s);
void push(SqStack *s,ElemType e);
ElemType pop(SqStack *s);
ElemType gettop(SqStack *s);
int abc(SqStack s);
void change(ElemType e);
main()
{
int k;ElemType e,x,y,u,v,m; char ch;
init_s(&s1);
init_s(&s2);
do{
printf("\n");
printf("\n\n 1.数据元素e进栈");
printf("\n\n 2.出栈一个元素,返回其值");
printf("\n\n 3.求栈顶元素");
printf("\n\n 4.输出栈中元素");
printf("\n\n 5.判栈空");
printf("\n\n 6.将栈顶元素转换为二进制");
printf("\n\n 7.结束程序运行");
printf("\n============================");
printf("\n\n 请输入您的选择(1.2.3.4.5.9)");
scanf("%d",&k);
switch(k)
{
case 1:{printf("\n 进栈e=?"); scanf("%d",&e);
push(&s1,e); out_s(&s1);
}break;
case 2:{x=pop(&s1);
printf("\n出栈元素:%d",x);
out_s(&s1);
}break;
case 3:{y=gettop(&s1);
printf("栈顶元素为:%d",y);
}break;
case 4:out_s(&s1);break;
case 5:{
printf("0为空栈,1为非空\n");
u=abc(s1);
printf("结果为:%d",u);
}break;
case 6:{
v=gettop(&s1);
printf("将%d转换为二进制",v);
change(v);
for(;i>0;i--)
{
m=pop(&s2);
printf("%d",m);
}break;
case 7:break;
}
printf("\n----------------------------");
}
}while(k>=1 && k<7);
printf("\n 再见!");
printf("\n 打回车键,返回。");
}
void init_s(SqStack *s)
{
s->top=-1;
}
void out_s(SqStack *s)
{
char ch; int i;
if(s->top==-1) printf("\n Stack is NULL.");
else{i=s->top;
while(i!=-1){printf("\n data=%d",s->a[i]);
i--;}
}
printf("\n 打回车键,继续。");
}
void push(SqStack *s,ElemType e)
{
if (s->top==MAXSIZE-1) printf("\n Sstack is overflow!");
else{
s->top++;
s->a[s->top]=e;
}
}
ElemType pop(SqStack *s)
{
ElemType x;
if(s->top==-1)
{
printf("Stack is underflow!"); x=-1;}
else{x=s->a[s->top];
s->top--;
}
return(x);
}
ElemType gettop(SqStack *s)
{
ElemType x;
if(s->top==-1)
{
printf("Stack is underflow!");
x=-1;
}
else
{
x=s->a[s->top];
}
return(x);
}
int abc(SqStack s)
{
if(s.top==-1)
return (0);
else return (1);
}
void change(ElemType e)
{
int j=0;
while(e!=0)
{
j=e%2;
push(&s2,j);
e/=2;
i++;
}
}
你可能喜欢
- 奥数二年级
- 十进制十六进制转换
- 小学奥数
- 专题训练
- c语言进制转换
- C语言函数
- 奥数 二年级 数学 第三讲时间的教师版计算答案11页
- 奥数二年级尖子班选拔题目及答案3页
- 奥数二年级第一周至第五周测试题3页
- 奥数二年级(不断更新)31页
- 奥数二年级7页
- 仁华奥数 二年级第12讲 仔细审题1页
- java 进制转换,二进制 十进制 十六进制 正数 负数的进制等等!4页
- 二进制、八进制、十进制、十六进制之间转换4页
- 二进制、八进制、十进制与十六进制转换计算精华9页
- 数据结构C语言将一个十进制数转换成另外一个P进制数字符串(可以是二进制到十六进制)2页
- 数制转换 二进制 八进制 十进制 十六进制之间的数制转换3页
- C++中十六进制转换为十进制1页
- 小学二年级奥数试题4页
- 小学数学奥数知识点归纳7页
- 小学二年级奥数2页
- 小学奥数题及答案3页
- 小学奥数题目答案11页
- 小学一年级奥数100题汇集6页
- 电路连接专题训练4页
- 方程专题训练2页
- 专题训练1 归纳猜想型专题18页
- 2004年高三语文专题训练7页
- 立几专题训练及答案18页
- 专题训练22页
- 进制之间的转换(2到32) c语言实现 非递归 txt格式直接vc编译2页
- c语言各进制转换方法4页
- c语言进制转换代码3页
- c语言_各种进制转换6页
- 单片机avr c语言二进制 十进制 十六进制快速转换2页
- c语言进制转换方式122133页
- C语言函数调用及定义37页
- C语言函数大全9页
- C语言函数习题19页
- C语言函数详解54页
- C语言函数调用规定56页
- C语言函数大全(i开头)22页


