用c语言编写四则运算法则,c语言编写四则运算-20210403022007.pdf-原创力文档

C语言编写四则运算

#includ e // 计算器

# in clud e 〈ma ll oc、h>

#def ine STACK_S IZE? 100? ? // ma x size of the stack

#define STACK_INCREMENT 10? //rea lloc size

typed ef st ruc t FStack // stac k of int

? float * base;

float * top ;

? in t st acksi ze;

} F St ack ;

v oid Ini t( FStack * s)

{

? s—>b ase = ( flo at *) mallo c (STACK_SIZE* siz eof (FStack) );

if ( !s-> base )

? {

? ? p ri nt f( ”over flow!\n ”);

? ? re turn ;

? }

? s- >t op = s— > base;

? s- >s tac ksize = STACK_SIZE;

boo l isEmp ty( FStac k* s )

? i f (s- 〉to p == s— 〉ba se)

? {

? ? re tu rn true ;

}

? else

? ? retu rn false ;

? }

voi d Push( FStack* s , f loa t e)

if (s- 〉t op - s—> base >= s- 〉stac ksize )

? {

? ? p rintf (”st ack i s full!\n realloc %d\n" , STACK_ INCREM

ENT);

? s— 〉 ba se = ( flo at *) reall oc (s-> base, ( s—>stacksi ze +

sizeof ( F Stack)) );

? ? if (!s— >base)

? ? {

? ? ? p rin tf ( "ov erfl ow!\n ”);

? ? r et ur n;

? ? }

? s -> top = s -〉 ba se + s—>s tacksize ;

? s- > st acksi ze += STACK_INCREMENT;

}

*( s-> t op) = e;

(s— >to p)++;

fl oat GetT op (FSt ack* s)

{

? i f ( s—> top = = s— 〉b as e)

? {

? prin tf( ”stac k i s emp ty !\n ");

? return 0;

? }

? float e = *( s->top - 1);

retu rn e;

v oid Pop( FS tack * s)

if (s ->top == s— > ba se)

? pr int f( ”s tack is emp ty !\n ");

re tu rn;

? }

? s- 〉top —— ;

typede f st ruc t CSta ck / /st ack of cha r

char * base;

c har * top ;

i nt stac ksi ze;

} CStack ;

void Init (CStac k* s )

{

s-> base = (

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值