c语⾔编计算器计算20位以上数字,简易计算器的代码--------我
终于可以编40⾏以上的。。。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
各位继续吧。我也写了点东西,可以看看哈~~
#include
#include
#define element_number 100  //预定义表达式最长为100个字符
//若超过则继续追加空间)
#define stack_increment 100  //预定义堆栈元素为100个
int i_f_flag=0;//计算⽅式标志,为1表⽰整型计算,为0为浮点型计算
typedef  float  element_type;
typedef struct stack{//操作数栈
element_type *base; //栈底
网页计算器html代码element_type *top;//栈顶
int stack_size;//栈⼤⼩
}stack;
int init_stack(stack *s)
{//top所指的是当前栈顶元素
s->base=(element_type *)malloc(sizeof(element_type));//分配栈空间
if(s->base==NULL)
{
printf("\n分配内存失败!\n");
return 0;
}
s->stack_size=element_number;
s->top=s->base;
return 1;
}
int get_top(stack s,element_type *e)
{//读取栈定元素
p==s.base)
{
printf("\n栈为空,⽆法访问!\n");
return 0;
}
*e=*(s.top-1);
return 1;
}
int push(stack *s,element_type e)
{//压栈
if(s->top-s->top>=s->stack_size)
{//如果栈空间已经⽤完
s->base=(element_type *)realloc(s->base,(element_number+stack_increment)*sizeof(element_type)); if(s->base==NULL)
{
printf("\n分配内存失败!\n");
return 0;
}
s->top=s->base+s->stack_size;
s->stack_size+=stack_increment;
}
*(s->top)=e;
s->top++;
return 1;
}
int pop(stack *s,element_type *e)
{//出栈
if(s->top==s->base)
{
printf("\n栈为空,⽆法访问!\n");

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。