速算24 c语言,C语言源程序代码-速算24

=='*')  /*如果为'*'号*/

{

top=ptop(top,&num2); /*将栈顶元素取出存入num2中*/

top=ptop(top,&num1); /*将栈顶元素取出存入num1中*/

result=num1*num2; /*将num1与num2相乘结果存入result中*/

top=push(top,result); /*将result压入堆栈*/

}

if(s=='/') /*如果为'/'号*/

{

top=ptop(top,&num2); /*将栈顶元素取出存入num2中*/

top=ptop(top,&num1); /*将栈顶元素取出存入num1中*/

result=num1/num2; /*将num1除num2结果存入result中*

top=push(top,result); /*将result压入堆栈*/

}

i++;  /*i加1*/

}

top=ptop(top,&result); /*最后栈顶元素的值为计算的结果*/

return result;  /*返回结果*/

}

STACK1 *initstack1(STACK1 *top) /*初始化*/

{

top=NULL; /*栈顶指针置为空*/

return top;  /*返回栈顶指针*/

}

STACK1 *push(STACK1 *top,int x) /*入栈函数*/

{

STACK1 *p;  /*临时指针类型为STACK1*/

p=(STACK1 *)malloc(sizeof(STACK1));  /*申请STACK1大小的空间*/

if(p==NULL)  /*如果p为空*/

{

printf("memory is oveRFlow\n!!"); /*显示内存溢出*/

exit(0);   /*退出*/

}

p->data=x; /*保存值x到新空间*/

p->link=top;  /*新结点的后继为当前栈顶指针*/

top=p;  /*新的栈顶指针为新插入的结点*/

return top; /*返回栈顶指针*/

}

STACK1 *pop(STACK1 *top) /*出栈*/

{

STACK1 *q; /*定义临时变量*/

q=top;  /*保存当前栈顶指针*/

top=top->link; /*栈顶指针后移*/

free(q);  /*释放q*/

return top; /*返回栈顶指针*/

}

int topx(STACK1 *top)  /*读栈顶元素*/

{

if(top==NULL)  /*栈是否为空*/

{

printf("Stack is null\n"); /*显示栈为空信息*/

return 0;   /*返回整数0*/

}

return top->data; /*返回栈顶元素*/

}

STACK1 *ptop(STACK1 *top,int *x) /*取栈顶元素,并删除栈顶元素*/

{

*x=topx(top);  /*读栈顶元素*/

top=pop(top); /*删除栈顶元素*/

return top; /*返回栈顶指针*/

}

int empty(STACK1 *top) /*判栈是否为空*/

{

if(top==NULL) /*如果为空*/

return 1;  /*返回1*/

else

return 0; /*否则返回0*/

}

STACK2 *initstack2(STACK2 *top) /*初始化*/

{

top=NULL; /*栈顶指针置为空*/

return top; /*返回栈顶指针*/

}

STACK2 *push2(STACK2 *top,char x) /*入栈函数*/

{

STACK2 *p; /*临时指针类型为STACK2*/

p=(STACK2 *)malloc(sizeof(STACK2)); /*申请STACK2大小的空间*/

if(p==NULL) /*如果p为空*/

{

printf("memory is overflow\n!!"); /*显示内存溢出*/

exit(0); /*退出*/

}

p->data=x; /*保存值x到新空间*/

p->link=top; /*新结点的后继为当前栈顶指针*/

top=p; /*新的栈顶指针为新插入的结点*/

return top; /*返回栈顶指针*/

}

STACK2 *pop2(STACK2 *top) /*出栈*/

{

STACK2 *q; /*定义临时变量*/

q=top; /*保存当前栈顶指针*/

top=top->link; /*栈顶指针后移*/

free(q); /*释放q*/

return top; /*返回栈顶指针*/

}

char topx2(STACK2 *top) /*读栈顶元素*/

{

if(top==NULL) /*栈是否为空*/

{

printf("Stack is null\n"); /*显示栈为空信息*/

return ''; /*返回空字符*/

}

return top->data; /*返回栈顶元素*/

}

STACK2 *ptop2(STACK2 *top,char *x) /*取栈顶元素,并删除栈顶元素*/

{

*x=topx2(top); /*读栈顶元素*/

top=pop2(top); /*删除栈顶元素*/

return top; /*返回栈顶指针*/

}

int empty2(STACK2 *top) /*判栈是否为空*/

{

if(top==NULL) /*如果为空*/

return 1; /*返回1*/

else

return 0; /*否则返回0*/

}

int text1(char *s)

{

setbkcolor(BLUE); /*设置背景颜色为蓝色*/

cleardevice(); /*清除屏幕*/

setcolor(12); /*设置文本颜色为淡红色*/

settextstyle(1, 0, 8);/*三重笔划字体, 放大8倍*/

outtextxy(120, 120, s); /*输出字符串s*/

setusercharsize(2, 1, 4, 1);/*水平放大2倍, 垂直放大4倍*/

setcolor(15);   /*设置文本颜色为*白色/

settextstyle(3, 0, 5); /*无衬字笔划, 放大5倍*/

outtextxy(220, 220, s); /*输出字符串s*/

getch(); /*键盘输入任一字符*/

return ; /*返回*/

}

699ba7046c51816a17b33a7caa85f179.png

0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值